From a03e512146658b59b41f3bfaba4e0a77c6d03833 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 13 Oct 2026 20:05:35 +0000 Subject: [PATCH] fix(e2e): restore test context before running `setup` hooks --- .../app-vitest/test/e2e/dev-concurrent.spec.ts | 7 ++----- examples/module/test/multiple-setup.test.ts | 16 ++++++++++++++++ src/e2e/setup/index.ts | 2 ++ 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 examples/module/test/multiple-setup.test.ts diff --git a/examples/app-vitest/test/e2e/dev-concurrent.spec.ts b/examples/app-vitest/test/e2e/dev-concurrent.spec.ts index 714d335b2..5cdd61dd8 100644 --- a/examples/app-vitest/test/e2e/dev-concurrent.spec.ts +++ b/examples/app-vitest/test/e2e/dev-concurrent.spec.ts @@ -1,15 +1,12 @@ import { fileURLToPath } from 'node:url' -import { createTest, setTestContext } from '@nuxt/test-utils/e2e' +import { createTest } from '@nuxt/test-utils/e2e' import { afterAll, beforeAll, describe, expect, it } from 'vitest' const rootDir = fileURLToPath(new URL('../../', import.meta.url)) const servers = [createTest({ rootDir, dev: true }), createTest({ rootDir, dev: true })] for (const server of servers) { - beforeAll(async () => { - setTestContext(server.ctx) - await server.beforeAll() - }, server.ctx.options.setupTimeout) + beforeAll(server.beforeAll, server.ctx.options.setupTimeout) afterAll(server.afterAll, server.ctx.options.teardownTimeout) } diff --git a/examples/module/test/multiple-setup.test.ts b/examples/module/test/multiple-setup.test.ts new file mode 100644 index 000000000..a0b926aa7 --- /dev/null +++ b/examples/module/test/multiple-setup.test.ts @@ -0,0 +1,16 @@ +import { fileURLToPath } from 'node:url' +import { describe, expect, it } from 'vitest' +import { $fetch, setup } from '@nuxt/test-utils/e2e' + +for (const fixture of ['basic', 'dot-config']) { + describe(fixture, async () => { + await setup({ + rootDir: fileURLToPath(new URL(`./fixtures/${fixture}`, import.meta.url)), + }) + + it('renders the index page', async () => { + const html = await $fetch('/') + expect(html).toContain(`
${fixture} original value
`) + }) + }) +} diff --git a/src/e2e/setup/index.ts b/src/e2e/setup/index.ts index a347ff664..d0507bc47 100644 --- a/src/e2e/setup/index.ts +++ b/src/e2e/setup/index.ts @@ -70,6 +70,8 @@ export function createTest(options: Partial): TestHooks { } const beforeAll = async () => { + setTestContext(ctx) + if (ctx.options.fixture) { await loadFixture() }