vitest.config.mts 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import { defineConfig } from "vitest/config";
  2. import path from "path";
  3. import { fileURLToPath } from "url";
  4. import { svelte } from "@sveltejs/vite-plugin-svelte";
  5. const __dirname = path.dirname(fileURLToPath(import.meta.url));
  6. export default defineConfig({
  7. plugins: [svelte({ hot: false })],
  8. resolve: {
  9. // Ensure Svelte resolves to browser bundle, not server
  10. conditions: ["browser"],
  11. // Deduplicate React and Vue so tests don't get two copies
  12. // (pnpm strict resolution can cause packages to resolve different copies)
  13. alias: {
  14. react: path.resolve(__dirname, "node_modules/react"),
  15. "react-dom": path.resolve(__dirname, "node_modules/react-dom"),
  16. vue: path.resolve(__dirname, "packages/vue/node_modules/vue"),
  17. },
  18. },
  19. test: {
  20. globals: true,
  21. environment: "jsdom",
  22. include: ["packages/**/*.test.ts", "packages/**/*.test.tsx"],
  23. coverage: {
  24. provider: "v8",
  25. reporter: ["text", "json", "html"],
  26. include: ["packages/*/src/**/*.{ts,tsx,svelte}"],
  27. exclude: ["**/*.test.{ts,tsx}", "**/index.ts"],
  28. },
  29. },
  30. });