analytics/services/api/vitest.config.ts
2026-01-29 08:20:57 -08:00

70 lines
1.6 KiB
TypeScript

import swc from 'unplugin-swc';
import path from 'path';
import { defineConfig } from 'vitest/config';
export default defineConfig({
plugins: [
swc.vite({
module: { type: 'es6' },
jsc: {
parser: {
syntax: 'typescript',
decorators: true,
},
transform: {
legacyDecorator: true,
decoratorMetadata: true,
},
},
}),
],
test: {
globals: true,
environment: 'node',
testTimeout: 30000,
include: ['src/**/*.spec.ts', 'test/**/*.spec.ts'],
exclude: ['**/*.e2e-spec.ts', 'node_modules', 'dist'],
setupFiles: ['./test/setup.ts'],
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
include: [
'src/acquisition/**/*.service.ts',
'src/engagement/**/*.service.ts',
'src/audience/**/*.service.ts',
'src/sessions/**/*.service.ts',
'src/segments/**/*.service.ts',
'src/trends/**/*.service.ts',
'src/funnels/**/*.service.ts',
'src/cohorts/**/*.service.ts',
],
exclude: [
'node_modules/',
'dist/',
'**/*.spec.ts',
'**/*.e2e-spec.ts',
'**/main.ts',
'**/index.ts',
'**/*.dto.ts',
'**/*.module.ts',
'**/*.controller.ts',
'**/*.entity.ts',
'test/**',
'vitest*.config.ts',
'scripts/**',
],
thresholds: {
statements: 80,
branches: 80,
functions: 80,
lines: 80,
},
},
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
'@test': path.resolve(__dirname, './test'),
},
},
});