@@ -27,3 +27,35 @@ test('can cancel pre-request script', async ({ app, page }) => {
2727 await page . getByRole ( 'button' , { name : 'Cancel Request' } ) . click ( ) ;
2828 await page . click ( 'text=Request was cancelled' ) ;
2929} ) ;
30+
31+ test ( 'handle hidden browser window getting closed' , async ( { app, page } ) => {
32+ test . slow ( process . platform === 'darwin' || process . platform === 'win32' , 'Slow app start on these platforms' ) ;
33+
34+ const text = await loadFixture ( 'pre-request-collection.yaml' ) ;
35+ await app . evaluate ( async ( { clipboard } , text ) => clipboard . writeText ( text ) , text ) ;
36+
37+ await page . getByRole ( 'button' , { name : 'Create in project' } ) . click ( ) ;
38+ await page . getByRole ( 'menuitemradio' , { name : 'Import' } ) . click ( ) ;
39+ await page . locator ( '[data-test-id="import-from-clipboard"]' ) . click ( ) ;
40+ await page . getByRole ( 'button' , { name : 'Scan' } ) . click ( ) ;
41+ await page . getByRole ( 'dialog' ) . getByRole ( 'button' , { name : 'Import' } ) . click ( ) ;
42+
43+ await page . getByText ( 'Pre-request Scripts' ) . click ( ) ;
44+
45+ await page . getByLabel ( 'Request Collection' ) . getByTestId ( 'Long running task' ) . press ( 'Enter' ) ;
46+ await page . getByTestId ( 'request-pane' ) . getByRole ( 'button' , { name : 'Send' } ) . click ( ) ;
47+
48+ await page . getByTestId ( 'settings-button' ) . click ( ) ;
49+ await page . getByLabel ( 'Request timeout (ms)' ) . fill ( '1' ) ;
50+ await page . getByRole ( 'button' , { name : '' } ) . click ( ) ;
51+ await page . getByRole ( 'button' , { name : 'Send' } ) . click ( ) ;
52+
53+ await page . getByText ( 'Timeout: Pre-request script took too long' ) . click ( ) ;
54+ await page . getByRole ( 'tab' , { name : 'Timeline' } ) . click ( ) ;
55+ await page . getByRole ( 'tab' , { name : 'Preview ' } ) . click ( ) ;
56+ const windows = await app . windows ( ) ;
57+ const hiddenWindow = windows [ 1 ] ;
58+ hiddenWindow . close ( ) ;
59+ await page . getByRole ( 'button' , { name : 'Send' } ) . click ( ) ;
60+ await page . getByText ( 'Timeout: Hidden browser window is not responding' ) . click ( ) ;
61+ } ) ;
0 commit comments