54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
const { defineConfig } = require("vitest/config");
|
|
const react = require("@vitejs/plugin-react");
|
|
|
|
module.exports = defineConfig({
|
|
plugins: [
|
|
// Enables React transform
|
|
react({ jsxRuntime: "automatic" }),
|
|
],
|
|
|
|
// Key part: make .js be parsed as JSX *before* import-analysis
|
|
esbuild: {
|
|
jsx: "automatic",
|
|
loader: "jsx", // default loader
|
|
include: /(?:^|\/)(app|components|pages|src|tests)\/.*\.[jt]sx?$/, // match your folders
|
|
exclude: [/node_modules/],
|
|
},
|
|
|
|
test: {
|
|
environment: "jsdom",
|
|
setupFiles: ["./vitest.setup.ts"], // match your actual filename
|
|
include: [
|
|
"tests/unit/**/*.test.{js,jsx,ts,tsx}",
|
|
"tests/integration/**/*.test.{js,jsx,ts,tsx}",
|
|
],
|
|
css: true,
|
|
transformMode: { web: [/\.[jt]sx?$/] }, // ensure web transform for JSX
|
|
coverage: {
|
|
provider: "v8",
|
|
reporter: ["text", "lcov"],
|
|
include: [
|
|
"app/**/*.{js,jsx,ts,tsx}",
|
|
"components/**/*.{js,jsx,ts,tsx}",
|
|
"!**/*.test.{js,jsx,ts,tsx}",
|
|
"!**/*.spec.{js,jsx,ts,tsx}",
|
|
"!**/node_modules/**",
|
|
"!**/tests/**",
|
|
],
|
|
exclude: [
|
|
"**/node_modules/**",
|
|
"**/tests/**",
|
|
"**/*.test.{js,jsx,ts,tsx}",
|
|
"**/*.spec.{js,jsx,ts,tsx}",
|
|
"**/coverage/**",
|
|
"**/.next/**",
|
|
"**/dist/**",
|
|
"**/build/**",
|
|
],
|
|
thresholds: { lines: 50, functions: 50, statements: 50, branches: 50 },
|
|
},
|
|
pool: "threads",
|
|
testTimeout: 10000,
|
|
},
|
|
});
|