Skip to content

Commit 2b9fdb5

Browse files
committed
ci: reuse fixture on test failures
1 parent b029575 commit 2b9fdb5

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

tests/utils/playwright-helpers.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
import { test as base, PlaywrightWorkerArgs, WorkerFixture, Page, expect } from '@playwright/test'
22
import { Fixture, fixtureFactories } from './create-e2e-fixture'
33

4+
const alreadyDeployed = new WeakMap<() => Promise<Fixture>, Promise<Fixture>>()
5+
46
const makeE2EFixture = (
57
createFixture: () => Promise<Fixture>,
68
): [WorkerFixture<Fixture, PlaywrightWorkerArgs>, { scope: 'worker' }] => [
79
async ({}, use) => {
8-
const fixture = await createFixture()
10+
const previousFixture = alreadyDeployed.get(createFixture)
11+
if (previousFixture) {
12+
await use(await previousFixture)
13+
return
14+
}
15+
16+
const fixturePromise = createFixture()
17+
alreadyDeployed.set(createFixture, fixturePromise)
18+
const fixture = await fixturePromise
919
await use(fixture)
10-
await fixture.cleanup() // TODO: replace false with info about test results
20+
// await fixture.cleanup() // TODO: replace false with info about test results
1121
},
1222
{ scope: 'worker' },
1323
]

0 commit comments

Comments
 (0)