import { defineConfig } from 'vitest/config';

const project = (name: string, root: string, extra: Record<string, unknown> = {}) => ({
  test: { name, root, include: ['test/**/*.test.ts', 'src/**/*.test.ts'], environment: 'node' as const, ...extra },
});

export default defineConfig({
  test: {
    passWithNoTests: true,
    projects: [
      project('engine', './packages/engine'),
      project('protocol', './packages/protocol'),
      project('db', './packages/db', { fileParallelism: false, testTimeout: 30_000, hookTimeout: 60_000 }),
      project('game-server', './apps/game-server', { testTimeout: 30_000, hookTimeout: 120_000, globalSetup: ['./test/global-setup.ts'], fileParallelism: false }),
      project('web', './apps/web', { include: ['test/**/*.test.ts', 'lib/**/*.test.ts'] }),
    ],
  },
});
