diff --git a/packages/browser/src/node/index.ts b/packages/browser/src/node/index.ts index 7da68231e..d927fb561 100644 --- a/packages/browser/src/node/index.ts +++ b/packages/browser/src/node/index.ts @@ -74,6 +74,7 @@ export const createBrowserServer: BrowserServerFactory = async (options) => { configLoader: project.vite.config.inlineConfig.configLoader, // watch is handled by Vitest server: { + ...project.options?.server, hmr: false, watch: null, }, diff --git a/test/browser/fixtures/server-options-inline/basic.test.ts b/test/browser/fixtures/server-options-inline/basic.test.ts new file mode 100644 index 000000000..981b77b7b --- /dev/null +++ b/test/browser/fixtures/server-options-inline/basic.test.ts @@ -0,0 +1,6 @@ +import { expect, test } from 'vitest' + +test('server headers from inline project config', async () => { + const res = await fetch('/') + expect(res.headers.get('x-inline-project')).toBe('from-inline-config') +}) diff --git a/test/browser/fixtures/server-options-inline/vitest.config.ts b/test/browser/fixtures/server-options-inline/vitest.config.ts new file mode 100644 index 000000000..02105cbf5 --- /dev/null +++ b/test/browser/fixtures/server-options-inline/vitest.config.ts @@ -0,0 +1,28 @@ +import { fileURLToPath } from 'node:url' +import { defineConfig } from 'vitest/config' +import { instances, provider } from '../../settings' + +// Test that server options defined in an inline project config +// are passed through to the browser Vite server. +export default defineConfig({ + cacheDir: fileURLToPath(new URL('./node_modules/.vite', import.meta.url)), + test: { + projects: [ + { + server: { + headers: { + 'x-inline-project': 'from-inline-config', + }, + }, + test: { + browser: { + enabled: true, + headless: true, + provider, + instances, + }, + }, + }, + ], + }, +}) diff --git a/test/browser/specs/server-options-inline.test.ts b/test/browser/specs/server-options-inline.test.ts new file mode 100644 index 000000000..544939640 --- /dev/null +++ b/test/browser/specs/server-options-inline.test.ts @@ -0,0 +1,10 @@ +import { expect, test } from 'vitest' +import { instances, runBrowserTests } from './utils' + +test('inline project server options are passed to browser server', async () => { + const { stdout, stderr } = await runBrowserTests({ + root: './fixtures/server-options-inline', + }) + expect(stderr).toBe('') + expect(stdout).toReportSummaryTestFiles({ passed: instances.length }) +})