-
Notifications
You must be signed in to change notification settings - Fork 266
Expand file tree
/
Copy pathvitest.config.ts
More file actions
34 lines (30 loc) · 1.44 KB
/
Copy pathvitest.config.ts
File metadata and controls
34 lines (30 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import {defineConfig, type ViteUserConfig} from 'vitest/config'
import {TEST_PORT} from './test/helpers/routes.ts'
/**
* Starts the standalone test server. Used by every suite except the browser one, which serves
* the same routes from Vitest's own Vite server instead so that the test page and the endpoints
* share an origin (see `test/helpers/ssePlugin.ts`).
*/
export const standaloneServer = ['./test/helpers/globalSetup.ts']
/**
* Shared by every `vitest.*.config.ts`. The same suite - `test/client.test.ts` - runs under all
* of them; what differs is the runtime it executes in, and where the test endpoints are served
* from. Which config is running gets passed to the tests through `provide`, because several of
* these environments cannot reliably be told apart from the inside: happy-dom presents a
* `document`, and node, bun and deno all share this base config.
*/
export const sharedConfig = {
include: ['test/client.test.ts'],
// Several tests wait out multiple reconnects against a 250ms retry, so the 5s default is tight.
testTimeout: 15000,
reporters: process.env['GITHUB_ACTIONS'] ? ['default', 'github-actions'] : 'default',
} satisfies ViteUserConfig['test']
// Base config: node, and the same file run under `bun run vitest` and `deno run -A npm:vitest`.
export default defineConfig({
test: {
...sharedConfig,
environment: 'node',
globalSetup: standaloneServer,
provide: {port: TEST_PORT, suite: 'node'},
},
})