/** * Vitest configuration for finances unit and React view tests with local module * aliases. */ import { createRequire } from "node:module"; import path from "node:path"; import { defineConfig } from "vitest/config"; const require = createRequire(import.meta.url); export default defineConfig({ resolve: { // Pin one React copy so jsdom view tests do not mix workspace and hoisted peers. alias: [ { find: /^react$/, replacement: path.dirname(require.resolve("react/package.json")), }, { find: /^react\/jsx-runtime$/, replacement: require.resolve("react/jsx-runtime"), }, { find: /^react\/jsx-dev-runtime$/, replacement: require.resolve("react/jsx-dev-runtime"), }, { find: /^react-dom$/, replacement: path.dirname(require.resolve("react-dom/package.json")), }, { find: /^react-dom\/client$/, replacement: require.resolve("react-dom/client"), }, ], }, test: { // .test.ts run in the default node environment. View component tests live in // .test.tsx files and opt into jsdom via a `// @vitest-environment jsdom` // docblock at the top of each file. environment: "node", include: [ "src/**/*.{test,spec}.{ts,tsx}", "test/**/*.{test,spec}.{ts,tsx}", ], }, });