Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

vitest.config.ts

Raw
import { defineConfig } from "vitest/config";

const include = [
	"extensions/**/__tests__/**/*.test.ts",
	"scripts/**/*.test.ts",
	"skills/**/*.test.ts",
];
const exclude = ["**/__e2e__/**", "**/node_modules/**"];
const validatorTests = [
	"extensions/ultra/__tests__/dynamic-extensions.test.ts",
	"scripts/prompt-composition.test.ts",
];

export default defineConfig({
	test: {
		reporters: ["minimal"],
		testTimeout: 30_000,
		hookTimeout: 30_000,
		projects: [
			{
				extends: true,
				test: {
					name: "fast",
					include,
					exclude: [
						...exclude,
						"extensions/web/**",
						"extensions/strata/**",
						...validatorTests,
					],
					isolate: false,
					// Three fork workers avoid CPU/process contention.
					maxWorkers: 3,
				},
			},
			{
				extends: true,
				test: {
					name: "web",
					include: ["extensions/web/**/__tests__/**/*.test.ts"],
					exclude,
					isolate: true,
					maxWorkers: 1,
				},
			},
			{
				extends: true,
				test: {
					name: "strata",
					include: ["extensions/strata/**/__tests__/**/*.test.ts"],
					exclude,
					// Each file owns its filesystem mocks and fake-command environment.
					isolate: true,
					maxWorkers: 1,
				},
			},
			{
				extends: true,
				test: {
					name: "validator",
					include: validatorTests,
					exclude,
					isolate: true,
					maxWorkers: 1,
					// Real child validators retain their production watchdog without
					// competing with the other projects' native subprocess tests.
					sequence: { groupOrder: 1 },
				},
			},
		],
	},
});