@@ -6,7 +6,7 @@ import { stripVTControlCharacters } from 'node:util'
66import { relative } from 'pathe'
77import { expect , test } from 'vitest'
88import { buildTestProjectTree } from '../../test-utils'
9- import { instances , provider , runBrowserTests } from './utils'
9+ import { instances , provider , runBrowserTests , runInlineBrowserTests } from './utils'
1010
1111// update snapshots by
1212// TEST_BROWSER=chromium pnpm -C test/browser/ test:playwright specs/trace.test.ts -u --run
@@ -1691,3 +1691,39 @@ test('trace view artifacts', async () => {
16911691 }
16921692 }
16931693} )
1694+
1695+ test ( 'action settling after its attempt ended is not recorded' , async ( ) => {
1696+ const { stderr, errorTree } = await runInlineBrowserTests (
1697+ {
1698+ 'basic.test.ts' : /* ts */ `
1699+ import { test } from 'vitest'
1700+ import { page } from 'vitest/browser'
1701+
1702+ test('unawaited', () => {
1703+ document.body.innerHTML = '<button>Click</button>'
1704+ // attaching a handler starts the call without awaiting it
1705+ page.getByRole('button').click().then(() => {})
1706+ })
1707+
1708+ test('wait', async () => {
1709+ await new Promise(resolve => setTimeout(resolve, 500))
1710+ })
1711+ ` ,
1712+ } ,
1713+ {
1714+ browser : {
1715+ instances : instances . slice ( 0 , 1 ) ,
1716+ traceView : 'on' ,
1717+ } ,
1718+ } ,
1719+ )
1720+ expect ( stderr ) . toBe ( '' )
1721+ expect ( errorTree ( ) ) . toMatchInlineSnapshot ( `
1722+ {
1723+ "basic.test.ts": {
1724+ "unawaited": "passed",
1725+ "wait": "passed",
1726+ },
1727+ }
1728+ ` )
1729+ } )
0 commit comments