Files
suaveplan/packages/ui/forms/react-forms/vitest.config.ts
2026-05-27 23:47:53 +01:00

73 lines
2.3 KiB
TypeScript

import react from "@vitejs/plugin-react";
import { defineConfig } from "vitest/config";
export default defineConfig({
plugins: [react()],
test: {
globals: false,
environment: "happy-dom",
pool: "forks",
fileParallelism: false,
// Inline @suaveplan/i18n so its bundled @opentelemetry/api copy
// (shipped as ESM under a CJS package.json) is transformed into
// ESM-compatible code by Vite before vitest evaluates it. Mirrors
// the @suaveplan/react-i18n vitest config — without this, importing
// anything from @suaveplan/i18n inside a *.test.tsx under happy-dom
// errors with "Cannot use import statement outside a module" on
// the first OTel pull-in.
server: {
deps: {
inline: [
"@suaveplan/i18n",
"@suaveplan/react-i18n",
"@suaveplan/react-ui",
"@opentelemetry/api",
"use-sync-external-store",
"react-day-picker",
/@radix-ui/,
],
},
},
setupFiles: [
"@suaveplan/testing/polyfills",
"./tests/setup/polyfills.ts",
],
include: [
"src/**/*.test.ts",
"src/**/*.test.tsx",
"tests/**/*.test.ts",
"tests/**/*.test.tsx",
],
exclude: [
"src/__benchmarks__/**",
"benchmarks/**",
"e2e/**",
"dist/**",
"node_modules/**",
],
coverage: {
provider: "istanbul",
reporter: ["text", "html", "lcov"],
include: ["src/**/*.ts", "src/**/*.tsx"],
exclude: [
"src/**/*.test.ts",
"src/**/*.test.tsx",
"src/**/*.bench.ts",
"src/**/*.schemas.ts",
"src/**/*.types.ts",
"src/**/*.stories.tsx",
"src/**/index.ts",
"src/__benchmarks__/**",
"tests/**",
],
thresholds: {
statements: 100,
branches: 100,
functions: 100,
lines: 100,
},
},
testTimeout: 5000,
},
});