diff options
Diffstat (limited to 'packages/integrations/prefetch/test/test-utils.js')
-rw-r--r-- | packages/integrations/prefetch/test/test-utils.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/integrations/prefetch/test/test-utils.js b/packages/integrations/prefetch/test/test-utils.js new file mode 100644 index 000000000..198ecaafa --- /dev/null +++ b/packages/integrations/prefetch/test/test-utils.js @@ -0,0 +1,31 @@ +import { test as testBase } from '@playwright/test'; +import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js'; + +export function loadFixture(inlineConfig) { + if (!inlineConfig || !inlineConfig.root) + throw new Error("Must provide { root: './fixtures/...' }"); + + // resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath + // without this, the main `loadFixture` helper will resolve relative to `packages/astro/test` + return baseLoadFixture({ + ...inlineConfig, + root: new URL(inlineConfig.root, import.meta.url).toString(), + }); +} + +export function testFactory(inlineConfig) { + let fixture; + + const test = testBase.extend({ + astro: async ({}, use) => { + fixture = await loadFixture(inlineConfig); + await use(fixture); + }, + }); + + test.afterEach(() => { + fixture.resetAllFiles(); + }); + + return test; +} |