42 lines
1 KiB
TypeScript
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();
|