|
|
@@ -0,0 +1,73 @@
|
|
|
+import react from '@vitejs/plugin-react';
|
|
|
+import tsconfigPaths from 'vite-tsconfig-paths';
|
|
|
+import { defineProject, defineWorkspace, mergeConfig } from 'vitest/config';
|
|
|
+
|
|
|
+const projectShared = defineProject({
|
|
|
+ plugins: [
|
|
|
+ tsconfigPaths(),
|
|
|
+ ],
|
|
|
+ test: {
|
|
|
+ clearMocks: true,
|
|
|
+ globals: true,
|
|
|
+ },
|
|
|
+});
|
|
|
+
|
|
|
+export default defineWorkspace([
|
|
|
+
|
|
|
+ // unit test
|
|
|
+ mergeConfig(
|
|
|
+ projectShared,
|
|
|
+ {
|
|
|
+ test: {
|
|
|
+ name: 'app-unit',
|
|
|
+ environment: 'node',
|
|
|
+ include: ['**/*.spec.{ts,js}'],
|
|
|
+ exclude: ['**/test/**'],
|
|
|
+ coverage: {
|
|
|
+ reportsDirectory: './coverage/unit',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ),
|
|
|
+
|
|
|
+ // integration test
|
|
|
+ mergeConfig(
|
|
|
+ projectShared,
|
|
|
+ {
|
|
|
+ test: {
|
|
|
+ name: 'app-integration',
|
|
|
+ environment: 'node',
|
|
|
+ include: ['**/*.integ.ts'],
|
|
|
+ exclude: ['**/test/**'],
|
|
|
+ setupFiles: [
|
|
|
+ './test-with-vite/setup/mongoms.ts',
|
|
|
+ ],
|
|
|
+ coverage: {
|
|
|
+ reportsDirectory: './coverage/integ',
|
|
|
+ exclude: [
|
|
|
+ '**/*{.,-}integ.ts',
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ),
|
|
|
+
|
|
|
+ // component test
|
|
|
+ mergeConfig(
|
|
|
+ projectShared,
|
|
|
+ {
|
|
|
+ plugins: [react()],
|
|
|
+ test: {
|
|
|
+ name: 'app-components',
|
|
|
+ environment: 'happy-dom',
|
|
|
+ include: [
|
|
|
+ '**/*.spec.{tsx,jsx}',
|
|
|
+ ],
|
|
|
+ exclude: ['**/test/**'],
|
|
|
+ coverage: {
|
|
|
+ reportsDirectory: './coverage/components',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ),
|
|
|
+]);
|