import { defineConfig } from 'vitest/config' import electronViteConfig from './electron.vite.config' const mainConfig = (electronViteConfig as any).main const rendererConfig = (electronViteConfig as any).renderer export default defineConfig({ test: { projects: [ // 主进程单元测试配置 { extends: true, plugins: mainConfig.plugins, resolve: { alias: mainConfig.resolve.alias }, test: { name: 'main', environment: 'node', setupFiles: ['tests/main.setup.ts'], include: ['src/main/**/*.{test,spec}.{ts,tsx}', 'src/main/**/__tests__/**/*.{test,spec}.{ts,tsx}'] } }, // 渲染进程单元测试配置 { extends: true, plugins: rendererConfig.plugins.filter((plugin: any) => plugin.name !== 'tailwindcss'), resolve: { alias: rendererConfig.resolve.alias }, test: { name: 'renderer', environment: 'jsdom', setupFiles: ['@vitest/web-worker', 'tests/renderer.setup.ts'], include: ['src/renderer/**/*.{test,spec}.{ts,tsx}', 'src/renderer/**/__tests__/**/*.{test,spec}.{ts,tsx}'] } }, // 脚本单元测试配置 { extends: true, test: { name: 'scripts', environment: 'node', include: ['scripts/**/*.{test,spec}.{ts,tsx}', 'scripts/**/__tests__/**/*.{test,spec}.{ts,tsx}'] } }, // aiCore 包单元测试配置 { extends: 'packages/aiCore/vitest.config.ts', test: { name: 'aiCore', environment: 'node', include: [ 'packages/aiCore/**/*.{test,spec}.{ts,tsx}', 'packages/aiCore/**/__tests__/**/*.{test,spec}.{ts,tsx}' ] } } ], // 全局共享配置 globals: true, setupFiles: [], exclude: ['**/node_modules/**', '**/dist/**', '**/out/**', '**/build/**'], coverage: { provider: 'v8', reporter: ['text', 'json', 'html', 'lcov', 'text-summary'], exclude: [ '**/node_modules/**', '**/dist/**', '**/out/**', '**/build/**', '**/coverage/**', '**/tests/**', '**/.yarn/**', '**/.cursor/**', '**/.vscode/**', '**/.github/**', '**/.husky/**', '**/*.d.ts', '**/types/**', '**/__tests__/**', '**/*.{test,spec}.{ts,tsx}', '**/*.config.{js,ts}' ] }, testTimeout: 20000, pool: 'threads', poolOptions: { threads: { singleThread: false } } } })