b93f5d5bdf
Adds test harness for the suite: - vitest.config.ts: happy-dom env, @/* alias, v8 coverage with 70% thresholds - setup.ts: env vars, global next/headers and next/navigation mocks - tsconfig.json: IDE alias resolution for test/ - __mocks__/prisma.ts: centralised Prisma mock auto-registered via vi.mock - fixtures/users.ts, fixtures/orders.ts: typed test data
37 lines
889 B
TypeScript
37 lines
889 B
TypeScript
import { defineConfig } from 'vitest/config'
|
|
import path from 'path'
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
environment: 'happy-dom',
|
|
globals: true,
|
|
setupFiles: [path.resolve(__dirname, 'setup.ts')],
|
|
include: [
|
|
'../test/unit/**/*.{test,spec}.{ts,tsx}',
|
|
'../test/integration/**/*.{test,spec}.{ts,tsx}',
|
|
'../test/components/**/*.{test,spec}.{ts,tsx}',
|
|
],
|
|
exclude: ['**/node_modules/**'],
|
|
coverage: {
|
|
provider: 'v8',
|
|
reporter: ['text', 'html', 'lcov'],
|
|
include: ['src/**/*.ts', 'src/**/*.tsx'],
|
|
exclude: [
|
|
'src/app/layout.tsx',
|
|
'src/lib/prisma.ts',
|
|
'src/**/*.d.ts',
|
|
],
|
|
thresholds: { lines: 70, functions: 70 },
|
|
},
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, '../app/src'),
|
|
},
|
|
},
|
|
esbuild: {
|
|
jsx: 'automatic',
|
|
jsxImportSource: 'react',
|
|
},
|
|
})
|