From 423d6345374e0b8adb7966caaf40f9588e21dd3c Mon Sep 17 00:00:00 2001 From: Vladimir Date: Wed, 8 Jan 2025 14:22:02 +0100 Subject: [PATCH] fix(browser): use correct project when filtering `entries` in the browser mode (#7167) --- packages/browser/src/node/plugin.ts | 4 +++- test/browser/specs/runner.test.ts | 12 +++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/browser/src/node/plugin.ts b/packages/browser/src/node/plugin.ts index 8bab85816f3a..84ef72bac22e 100644 --- a/packages/browser/src/node/plugin.ts +++ b/packages/browser/src/node/plugin.ts @@ -152,7 +152,9 @@ export default (parentServer: ParentBrowserProject, base = '/'): Plugin[] => { name: 'vitest:browser:tests', enforce: 'pre', async config() { - const project = parentServer.vitest.getProjectByName(parentServer.config.name) + // this plugin can be used in different projects, but all of them + // have the same `include` pattern, so it doesn't matter which project we use + const project = parentServer.project const { testFiles: allTestFiles } = await project.globTestFiles() const browserTestFiles = allTestFiles.filter( file => getFilePoolName(project, file) === 'browser', diff --git a/test/browser/specs/runner.test.ts b/test/browser/specs/runner.test.ts index de47de301aa0..5b556db8a283 100644 --- a/test/browser/specs/runner.test.ts +++ b/test/browser/specs/runner.test.ts @@ -1,3 +1,5 @@ +import type { Vitest } from 'vitest/node' +import type { JsonTestResults } from 'vitest/reporters' import { readFile } from 'node:fs/promises' import { beforeAll, describe, expect, onTestFailed, test } from 'vitest' import { instances, provider, runBrowserTests } from './utils' @@ -5,14 +7,16 @@ import { instances, provider, runBrowserTests } from './utils' describe('running browser tests', async () => { let stderr: string let stdout: string - let browserResultJson: any + let browserResultJson: JsonTestResults let passedTests: any[] let failedTests: any[] + let vitest: Vitest beforeAll(async () => { ({ stderr, stdout, + ctx: vitest, } = await runBrowserTests()) const browserResult = await readFile('./browser.json', 'utf-8') @@ -28,6 +32,12 @@ describe('running browser tests', async () => { console.error(stderr) }) + const testFiles = browserResultJson.testResults.map(t => t.name) + + // test files are optimized automatically + expect(vitest.projects.map(p => p.browser?.vite.config.optimizeDeps.entries)) + .toEqual(vitest.projects.map(() => expect.arrayContaining(testFiles))) + // This should match the number of actual tests from browser.json // if you added new tests, these assertion will fail and you should // update the numbers