Skip to content

Commit db01f6c

Browse files
authored
fix(browser): apply inlined workspace config to browser mode vite server (#4947)
1 parent 4b41131 commit db01f6c

File tree

6 files changed

+44
-4
lines changed

6 files changed

+44
-4
lines changed

packages/vitest/src/integrations/browser/server.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export async function createBrowserServer(project: WorkspaceProject, configFile:
1414
const configPath = typeof configFile === 'string' ? configFile : false
1515

1616
const server = await createServer({
17+
...project.options, // spread project config inlined in root workspace config
1718
logLevel: 'error',
1819
mode: project.config.mode,
1920
configFile: configPath,
@@ -25,6 +26,7 @@ export async function createBrowserServer(project: WorkspaceProject, configFile:
2526
},
2627
},
2728
plugins: [
29+
...project.options?.plugins || [],
2830
(await import('@vitest/browser')).default(project, '/'),
2931
CoverageTransform(project.ctx),
3032
{

packages/vitest/src/node/workspace.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ interface InitializeProjectOptions extends UserWorkspaceConfig {
2525
}
2626

2727
export async function initializeProject(workspacePath: string | number, ctx: Vitest, options: InitializeProjectOptions) {
28-
const project = new WorkspaceProject(workspacePath, ctx)
28+
const project = new WorkspaceProject(workspacePath, ctx, options)
2929

3030
const configFile = options.extends
3131
? resolve(dirname(options.workspaceConfigPath), options.extends)
@@ -78,6 +78,7 @@ export class WorkspaceProject {
7878
constructor(
7979
public path: string | number,
8080
public ctx: Vitest,
81+
public options?: InitializeProjectOptions,
8182
) { }
8283

8384
getName(): string {

test/workspaces-browser/globalTest.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ export async function teardown() {
66

77
try {
88
assert.ok(results.success)
9-
assert.equal(results.numTotalTestSuites, 3)
10-
assert.equal(results.numTotalTests, 3)
11-
assert.equal(results.numPassedTests, 3)
9+
assert.equal(results.numTotalTestSuites, 4)
10+
assert.equal(results.numTotalTests, 5)
11+
assert.equal(results.numPassedTests, 5)
1212
}
1313
catch (err) {
1414
console.error(err)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'hello'
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { expect, test } from 'vitest'
2+
3+
// @ts-expect-error alias
4+
import testAliasVite from 'test-alias-from-vite'
5+
6+
// @ts-expect-error alias
7+
import testAliasVitest from 'test-alias-from-vitest'
8+
9+
test('window is defined', () => {
10+
expect(typeof window).toBe('object')
11+
})
12+
13+
test('alias from workspace inline config', () => {
14+
expect(testAliasVite).toBe('hello')
15+
expect(testAliasVitest).toBe('hello')
16+
})

test/workspaces-browser/vitest.workspace.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,24 @@ import { defineWorkspace } from 'vitest/config'
22

33
export default defineWorkspace([
44
'./space_*/*.config.ts',
5+
{
6+
test: {
7+
name: 'space_browser_inline',
8+
root: './space_browser_inline',
9+
browser: {
10+
enabled: true,
11+
name: process.env.BROWSER || 'chrome',
12+
headless: true,
13+
provider: process.env.PROVIDER || 'webdriverio',
14+
},
15+
alias: {
16+
'test-alias-from-vitest': new URL('./space_browser_inline/test-alias-to.ts', import.meta.url).pathname,
17+
},
18+
},
19+
resolve: {
20+
alias: {
21+
'test-alias-from-vite': new URL('./space_browser_inline/test-alias-to.ts', import.meta.url).pathname,
22+
},
23+
},
24+
},
525
])

0 commit comments

Comments
 (0)