imajin/node_modules/@lilith/configs/vitest/react.ts
2026-01-10 04:52:11 -08:00

42 lines
1 KiB
TypeScript

/**
* @viky/configs - Vitest React Configuration
* Base Vitest config for React applications with jsdom
*/
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vitest/config';
import type { UserConfig } from 'vitest/config';
export function createVitestReactConfig(options: {
include?: string[];
exclude?: string[];
setupFiles?: string[];
coverage?: UserConfig['test']['coverage'];
} = {}): UserConfig {
const {
include = ['src/**/*.test.{ts,tsx}', 'src/**/*.spec.{ts,tsx}'],
exclude = ['node_modules', 'dist'],
setupFiles = [],
coverage = {},
} = options;
return defineConfig({
plugins: [react()],
test: {
globals: true,
environment: 'jsdom',
include,
exclude,
setupFiles,
css: true,
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
exclude: ['node_modules/', 'dist/', '**/*.test.{ts,tsx}', '**/*.spec.{ts,tsx}'],
...coverage,
},
},
});
}
export default createVitestReactConfig();