diff --git a/.github/workflows/frontend.yaml b/.github/workflows/frontend.yaml index c2c5e181..0087569e 100644 --- a/.github/workflows/frontend.yaml +++ b/.github/workflows/frontend.yaml @@ -37,7 +37,7 @@ jobs: - name: Install dependencies run: pnpm install - name: Build web app - run: pnpm -w -r run test + run: pnpm -r run test lint: runs-on: ubuntu-latest diff --git a/apps/web/package.json b/apps/web/package.json index 80c5c6c1..82c0327d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -6,6 +6,7 @@ "dev": "vite", "build": "vite build", "preview": "vite preview --port 4200", + "test": "vitest", "generate-openapi": "pnpm exec @rtk-query/codegen-openapi openapi-config.ts", "prebuild": "cp -rf ../../assets/* public/assets/ && cp ../../assets/logo.png public/favicon.png" } diff --git a/libs/api/package.json b/libs/api/package.json index 72db5e0f..7e6e57e7 100644 --- a/libs/api/package.json +++ b/libs/api/package.json @@ -3,6 +3,7 @@ "version": "0.0.0", "private": true, "scripts": { - "generate-openapi": "sh -lc \"pnpm exec typed-openapi --schemas-only --runtime zod ../../api/openapi.json --output src/lib/generated/schema.ts && pnpm exec openapi-typescript-codegen --input ../../api/openapi.json --output src/lib/generated --useUnionTypes --name Client --useOptions && sed -i 's/z.record(/z.record(z.string(), /' src/lib/generated/schema.ts && sed -i 's/type: string/type: \"personal\"/' src/lib/generated/models/PersonalAccount.ts && sed -i 's/type: string/type: \"clearing\"/' src/lib/generated/models/ClearingAccount.ts && grep -rlZ eslint-disable src/lib/generated | xargs -0 sed -i 's/eslint-disable/oxlint-disable/' && echo \"/* oxlint-disable */\\n$(cat src/lib/generated/schema.ts)\" > src/lib/generated/schema.ts && echo \"/* tslint:disable */\\n$(cat src/lib/generated/schema.ts)\" > src/lib/generated/schema.ts && echo \"/* istanbul ignore file */\\n$(cat src/lib/generated/schema.ts)\" > src/lib/generated/schema.ts && pnpm exec oxfmt src/lib/generated\"" + "generate-openapi": "sh -lc \"pnpm exec typed-openapi --schemas-only --runtime zod ../../api/openapi.json --output src/lib/generated/schema.ts && pnpm exec openapi-typescript-codegen --input ../../api/openapi.json --output src/lib/generated --useUnionTypes --name Client --useOptions && sed -i 's/z.record(/z.record(z.string(), /' src/lib/generated/schema.ts && sed -i 's/type: string/type: \"personal\"/' src/lib/generated/models/PersonalAccount.ts && sed -i 's/type: string/type: \"clearing\"/' src/lib/generated/models/ClearingAccount.ts && grep -rlZ eslint-disable src/lib/generated | xargs -0 sed -i 's/eslint-disable/oxlint-disable/' && echo \"/* oxlint-disable */\\n$(cat src/lib/generated/schema.ts)\" > src/lib/generated/schema.ts && echo \"/* tslint:disable */\\n$(cat src/lib/generated/schema.ts)\" > src/lib/generated/schema.ts && echo \"/* istanbul ignore file */\\n$(cat src/lib/generated/schema.ts)\" > src/lib/generated/schema.ts && pnpm exec oxfmt src/lib/generated\"", + "test": "vitest" } } diff --git a/libs/api/vite.config.ts b/libs/api/vite.config.ts new file mode 100644 index 00000000..0732fd7c --- /dev/null +++ b/libs/api/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: "../../node_modules/.vite/libs/api", + plugins: [react(), tsconfigPaths()], + test: { + name: "test", + watch: false, + globals: true, + environment: "jsdom", + include: ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], + reporters: ["default"], + coverage: { + reportsDirectory: "../../coverage/libs/api", + provider: "v8" as const, + }, + }, +})); diff --git a/libs/components/package.json b/libs/components/package.json index 9ec84c1d..1319dc96 100644 --- a/libs/components/package.json +++ b/libs/components/package.json @@ -3,5 +3,7 @@ "version": "0.0.0", "private": true, "main": "src/index.ts", - "scripts": {} + "scripts": { + "test": "vitest" + } } diff --git a/libs/components/vite.config.ts b/libs/components/vite.config.ts new file mode 100644 index 00000000..1498f234 --- /dev/null +++ b/libs/components/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: "../../node_modules/.vite/libs/components", + plugins: [react(), tsconfigPaths()], + test: { + name: "test", + watch: false, + globals: true, + environment: "jsdom", + include: ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], + reporters: ["default"], + coverage: { + reportsDirectory: "../../coverage/libs/commponents", + provider: "v8" as const, + }, + }, +})); diff --git a/libs/core/package.json b/libs/core/package.json index efda2cf8..e8f0c68d 100644 --- a/libs/core/package.json +++ b/libs/core/package.json @@ -3,5 +3,7 @@ "version": "0.0.0", "private": true, "main": "src/index.ts", - "scripts": {} + "scripts": { + "test": "vitest" + } } diff --git a/libs/core/vite.config.ts b/libs/core/vite.config.ts new file mode 100644 index 00000000..ac2edc4a --- /dev/null +++ b/libs/core/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: "../../node_modules/.vite/libs/core", + plugins: [react(), tsconfigPaths()], + test: { + name: "test", + watch: false, + globals: true, + environment: "jsdom", + include: ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], + reporters: ["default"], + coverage: { + reportsDirectory: "../../coverage/libs/core", + provider: "v8" as const, + }, + }, +})); diff --git a/libs/redux/package.json b/libs/redux/package.json index 47d5cb89..ab9eeccf 100644 --- a/libs/redux/package.json +++ b/libs/redux/package.json @@ -3,5 +3,7 @@ "version": "0.0.0", "private": true, "main": "src/index.ts", - "scripts": {} + "scripts": { + "test": "vitest" + } } diff --git a/libs/redux/vite.config.ts b/libs/redux/vite.config.ts new file mode 100644 index 00000000..c37f5802 --- /dev/null +++ b/libs/redux/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: "../../node_modules/.vite/libs/redux", + plugins: [react(), tsconfigPaths()], + test: { + name: "test", + watch: false, + globals: true, + environment: "jsdom", + include: ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], + reporters: ["default"], + coverage: { + reportsDirectory: "../../coverage/libs/redux", + provider: "v8" as const, + }, + }, +})); diff --git a/libs/types/package.json b/libs/types/package.json index b2bf115c..4d0074af 100644 --- a/libs/types/package.json +++ b/libs/types/package.json @@ -3,5 +3,7 @@ "version": "0.0.0", "private": true, "main": "src/index.ts", - "scripts": {} + "scripts": { + "test": "vitest" + } } diff --git a/libs/types/vite.config.ts b/libs/types/vite.config.ts new file mode 100644 index 00000000..d621e094 --- /dev/null +++ b/libs/types/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: "../../node_modules/.vite/libs/types", + plugins: [react(), tsconfigPaths()], + test: { + name: "test", + watch: false, + globals: true, + environment: "jsdom", + include: ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], + reporters: ["default"], + coverage: { + reportsDirectory: "../../coverage/libs/types", + provider: "v8" as const, + }, + }, +})); diff --git a/libs/utils/vite.config.ts b/libs/utils/vite.config.ts new file mode 100644 index 00000000..68bedf29 --- /dev/null +++ b/libs/utils/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: "../../node_modules/.vite/libs/utils", + plugins: [react(), tsconfigPaths()], + test: { + name: "test", + watch: false, + globals: true, + environment: "jsdom", + include: ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], + reporters: ["default"], + coverage: { + reportsDirectory: "../../coverage/libs/utils", + provider: "v8" as const, + }, + }, +})); diff --git a/package.json b/package.json index aee47d21..3d271099 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,9 @@ "libs/**" ], "scripts": { - "start": "pnpm -w -r --parallel run start", - "build": "pnpm -w -r --parallel run build", - "test": "pnpm -w -r --parallel run test" + "start": "pnpm -r --parallel run start", + "build": "pnpm -r --parallel run build", + "test": "pnpm -r --parallel run test" }, "dependencies": { "@date-io/luxon": "^3.2.0",