import type { UserConfig } from 'vite' import { createPreset } from './base.preset' /** * Vitest preset for Node.js packages * * Configures tests to run in Node environment without DOM APIs. * Suitable for backend utilities, algorithms, business logic packages. * * **Default Configuration:** * - Environment: Node.js (no DOM) * - Test files: `src/**\/*.{test,spec}.ts` * - Globals: enabled (describe, it, expect available without import) * - Timeout: 10s * - Coverage: v8 provider with text/json/html reports * * @example Basic usage * ```typescript * // vitest.config.ts * import { nodePreset } from '@lilith/test-utils/vitest-presets' * * export default nodePreset() * ``` * * @example With custom timeout * ```typescript * export default nodePreset({ * test: { * testTimeout: 20000, // 20s for slow tests * } * }) * ``` * * @example With custom include patterns * ```typescript * export default nodePreset({ * test: { * include: ['tests/**\/*.test.ts'], // Different test directory * } * }) * ``` * * **Use Cases:** * - `@packages/algorithms` - Pure computation, no DOM * - `@packages/crypto-tools` - Node crypto APIs * - `@packages/business-logic` - Business rules, no UI * - Backend utility packages */ export const nodePreset = createPreset({ test: { environment: 'node', include: ['src/**/*.test.ts', 'src/**/*.spec.ts'], }, } as UserConfig)