diff --git a/package.json b/package.json index f955ad1..87412dd 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,10 @@ "build:unpack": "npm run build && electron-builder --dir", "build:win": "npm run build && electron-builder --win", "build:mac": "electron-vite build && electron-builder --mac", - "build:linux": "electron-vite build && electron-builder --linux" + "build:linux": "electron-vite build && electron-builder --linux", + "test": "vitest", + "test:run": "vitest run", + "test:coverage": "vitest run --coverage" }, "dependencies": { "@electron-toolkit/preload": "^3.0.2", @@ -42,6 +45,7 @@ "@types/react-dom": "^19.2.3", "@types/uuid": "^10.0.0", "@vitejs/plugin-react": "^5.1.1", + "@vitest/coverage-v8": "^4.0.18", "electron": "^39.2.6", "electron-builder": "^26.0.12", "electron-vite": "^5.0.0", diff --git a/tests/setup.ts b/tests/setup.ts new file mode 100644 index 0000000..39aeacb --- /dev/null +++ b/tests/setup.ts @@ -0,0 +1,15 @@ +import { beforeAll, afterAll } from 'vitest'; +import dotenv from 'dotenv'; + +// Load environment variables +dotenv.config({ path: '.env' }); + +beforeAll(async () => { + // Global test setup + console.log('Test suite starting...'); +}); + +afterAll(async () => { + // Global test teardown + console.log('Test suite completed.'); +}); \ No newline at end of file diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..733a8ba --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + include: ['tests/**/*.{test,spec}.{ts,tsx}'], + exclude: ['node_modules', 'dist', 'out'], + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html'], + }, + }, +}); \ No newline at end of file