@@ -68,28 +68,45 @@ test('can create a Floating IP', async ({ page }) => {
6868} )
6969
7070test ( 'can detach and attach a Floating IP' , async ( { page } ) => {
71+ // check floating IP is visible on instance detail
72+ await page . goto ( '/projects/mock-project/instances/db1' )
73+ await expect ( page . getByText ( '192.168.64.64' ) ) . toBeVisible ( )
74+
75+ // now go detach it
7176 await page . goto ( floatingIpsPage )
7277
7378 await expectRowVisible ( page . getByRole ( 'table' ) , {
79+ name : 'cola-float' ,
80+ ip : '192.168.64.64' ,
7481 'Attached to instance' : 'db1' ,
7582 } )
7683 await clickRowAction ( page , 'cola-float' , 'Detach' )
7784 await page . getByRole ( 'button' , { name : 'Confirm' } ) . click ( )
7885
79- await expectNotVisible ( page , [ 'role=heading[name*="Detach Floating IP"]' ] )
86+ await expect ( page . getByRole ( 'dialog' ) ) . toBeHidden ( )
8087 // Since we detached it, we don't expect to see db1 any longer
81- await expectNotVisible ( page , [ 'text=db1' ] )
88+ await expect ( page . getByRole ( 'cell' , { name : 'db1' } ) ) . toBeHidden ( )
89+
90+ // click back over to instance page (can't use goto because it refreshes) and
91+ // confirm the IP is no longer there either
92+ await page . getByRole ( 'link' , { name : 'Instances' } ) . click ( )
93+ await page . getByRole ( 'link' , { name : 'db1' } ) . click ( )
94+ await expect ( page . getByRole ( 'heading' , { name : 'db1' } ) ) . toBeVisible ( )
95+ await expect ( page . getByText ( '192.168.64.64' ) ) . toBeHidden ( )
8296
83- // Reattach it to db1
97+ // Now click back to floating IPs and reattach it to db1
98+ await page . getByRole ( 'link' , { name : 'Floating IPs' } ) . click ( )
8499 await clickRowAction ( page , 'cola-float' , 'Attach' )
85100 await page . getByRole ( 'button' , { name : 'Select instance' } ) . click ( )
86101 await page . getByRole ( 'option' , { name : 'db1' } ) . click ( )
87102
88103 await page . getByRole ( 'button' , { name : 'Attach' } ) . click ( )
89104
90105 // The dialog should be gone
91- await expectNotVisible ( page , [ 'role=heading[name*="Attach Floating IP"]' ] )
106+ await expect ( page . getByRole ( 'dialog' ) ) . toBeHidden ( )
92107 await expectRowVisible ( page . getByRole ( 'table' ) , {
108+ name : 'cola-float' ,
109+ ip : '192.168.64.64' ,
93110 'Attached to instance' : 'db1' ,
94111 } )
95112} )
0 commit comments