|
1 | | -## Vitest config factory and setup presets |
| 1 | +## Vitest Config Factory |
2 | 2 |
|
3 | | -Utilities to centralize and standardize Vitest configuration across the monorepo. |
| 3 | +Standardized Vitest configuration for the Code PushUp monorepo. |
4 | 4 |
|
5 | | -- `vitest-config-factory.ts`: builds typed Vitest configs with sensible defaults |
6 | | -- `vitest-setup-presets.ts`: provides create functions and exportable setup file groups |
| 5 | +### Usage |
7 | 6 |
|
8 | | -The create functions (`createUnitConfig`, `createIntConfig`, `createE2eConfig`) automatically include appropriate setup files for each test type. See the unit tests for detailed documentation of defaults, coverage settings, and setup file presets. |
| 7 | +**Unit tests:** |
9 | 8 |
|
10 | | -### Examples |
| 9 | +```typescript |
| 10 | +import { createUnitTestConfig } from '@code-pushup/test-setup-config'; |
11 | 11 |
|
12 | | -**Using defaults:** |
| 12 | +export default createUnitTestConfig('my-package'); |
| 13 | +``` |
| 14 | + |
| 15 | +**Integration tests:** |
| 16 | + |
| 17 | +```typescript |
| 18 | +import { createIntTestConfig } from '@code-pushup/test-setup-config'; |
13 | 19 |
|
14 | | -```ts |
15 | | -export default createUnitConfig('my-package', import.meta.url); |
| 20 | +export default createIntTestConfig('my-package'); |
16 | 21 | ``` |
17 | 22 |
|
18 | | -**Extending default setup files:** |
| 23 | +**E2E tests:** |
| 24 | + |
| 25 | +```typescript |
| 26 | +import { createE2ETestConfig } from '@code-pushup/test-setup-config'; |
| 27 | + |
| 28 | +export default createE2ETestConfig('my-e2e'); |
19 | 29 |
|
20 | | -```ts |
21 | | -export default createIntConfig('my-package', import.meta.url, { |
22 | | - setupFiles: [...setupPresets.int.base, ...setupPresets.int.git, './custom-setup.ts'], |
| 30 | +// With options: |
| 31 | +export default createE2ETestConfig('my-e2e', { |
| 32 | + testTimeout: 60_000, |
| 33 | + disableCoverage: true, |
23 | 34 | }); |
24 | 35 | ``` |
| 36 | + |
| 37 | +### Advanced: Overriding Config |
| 38 | + |
| 39 | +For edge cases, use the spread operator to override any property: |
| 40 | + |
| 41 | +```typescript |
| 42 | +const baseConfig = createE2ETestConfig('my-e2e'); |
| 43 | +export default { |
| 44 | + ...baseConfig, |
| 45 | + test: { |
| 46 | + ...(baseConfig as any).test, |
| 47 | + globalSetup: ['./custom-setup.ts'], |
| 48 | + }, |
| 49 | +}; |
| 50 | +``` |
0 commit comments