vitest.workspace.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import react from '@vitejs/plugin-react';
  2. import tsconfigPaths from 'vite-tsconfig-paths';
  3. import { defineProject, defineWorkspace, mergeConfig } from 'vitest/config';
  4. const projectShared = defineProject({
  5. plugins: [
  6. tsconfigPaths(),
  7. ],
  8. test: {
  9. clearMocks: true,
  10. globals: true,
  11. },
  12. });
  13. export default defineWorkspace([
  14. // unit test
  15. mergeConfig(
  16. projectShared,
  17. {
  18. test: {
  19. name: 'app-unit',
  20. environment: 'node',
  21. include: ['**/*.spec.{ts,js}'],
  22. exclude: ['**/test/**'],
  23. coverage: {
  24. reportsDirectory: './coverage/unit',
  25. },
  26. },
  27. },
  28. ),
  29. // integration test
  30. mergeConfig(
  31. projectShared,
  32. {
  33. test: {
  34. name: 'app-integration',
  35. environment: 'node',
  36. include: ['**/*.integ.ts'],
  37. exclude: ['**/test/**'],
  38. setupFiles: [
  39. './test-with-vite/setup/mongoms.ts',
  40. ],
  41. coverage: {
  42. reportsDirectory: './coverage/integ',
  43. exclude: [
  44. '**/*{.,-}integ.ts',
  45. ],
  46. },
  47. },
  48. },
  49. ),
  50. // component test
  51. mergeConfig(
  52. projectShared,
  53. {
  54. plugins: [react()],
  55. test: {
  56. name: 'app-components',
  57. environment: 'happy-dom',
  58. include: [
  59. '**/*.spec.{tsx,jsx}',
  60. ],
  61. exclude: ['**/test/**'],
  62. coverage: {
  63. reportsDirectory: './coverage/components',
  64. },
  65. },
  66. },
  67. ),
  68. ]);