From 353567ff09381656a0a1861361b6357b7195a5a7 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Fri, 3 Jan 2025 15:54:40 +0100 Subject: [PATCH 1/2] fix(browser): use correct project when filtering `entries` in the browser mode --- packages/browser/src/node/plugin.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/browser/src/node/plugin.ts b/packages/browser/src/node/plugin.ts index 73f43899d760..c976176366c2 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', From 8d6d9f6aac4d48b5cd99100cd495b17ad7b96550 Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Tue, 7 Jan 2025 19:46:38 +0100 Subject: [PATCH 2/2] test(browser): check that test files are optimized --- test/browser/specs/runner.test.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/browser/specs/runner.test.ts b/test/browser/specs/runner.test.ts index 70a110cc239b..4f1b53cb2f3e 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