From 2c289ec07c55a88d4b913e4028a53bc58c7d41a9 Mon Sep 17 00:00:00 2001 From: Triston Armstrong Date: Tue, 19 Mar 2024 00:30:43 -0500 Subject: [PATCH] setup test and get working test file --- bun.lockb | Bin 113866 -> 150785 bytes package.json | 8 ++++++-- src/main.spec.ts | 7 +++++++ vite.config.ts | 13 ++++++++++--- 4 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 src/main.spec.ts diff --git a/bun.lockb b/bun.lockb index b66914bdb1d980cc9b835bce17e9f0ed737cb16a..14401b01e9b53708b4b5ff3ab824a72edf501d55 100755 GIT binary patch delta 42625 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 CK(=Q9 diff --git a/package.json b/package.json index ed010ef..52fac61 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,9 @@ "build": "tsc && vite build", "preview": "vite preview", "tauri": "tauri", - "commit": "cz" + "commit": "cz", + "test:f": "vitest", + "test:f:ui": "bun run test:f --ui" }, "dependencies": { "@tauri-apps/api": "^1", @@ -16,13 +18,15 @@ "vite-plugin-kaioken": "^0.0.7" }, "devDependencies": { + "jsdom": "^24.0.0", "@tauri-apps/cli": "^1", "autoprefixer": "^10.4.18", "cz-conventional-changelog": "^3.3.0", "postcss": "^8.4.35", "tailwindcss": "^3.4.1", "typescript": "^5.0.2", - "vite": "^5.0.0" + "vite": "^5.0.0", + "vitest": "^1.4.0" }, "config": { "commitizen": { diff --git a/src/main.spec.ts b/src/main.spec.ts new file mode 100644 index 0000000..5b6cee7 --- /dev/null +++ b/src/main.spec.ts @@ -0,0 +1,7 @@ +import * as main from "./main.ts" + +describe("main", () => { + it("should be defined", () => { + expect(true).toBeTruthy() + }) +}) diff --git a/vite.config.ts b/vite.config.ts index 455ed70..0dc34e1 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,6 @@ -import { defineConfig } from "vite"; -import kaioken from "vite-plugin-kaioken"; +/// +import { defineConfig } from "vite" +import kaioken from "vite-plugin-kaioken" // https://vitejs.dev/config/ export default defineConfig({ @@ -25,4 +26,10 @@ export default defineConfig({ ignored: ["**/src-tauri/**"], }, }, -}); + envPrefix: ["VITE_", "TAURI_"], + test: { + exclude: ["src-tauri/**/*", "node_modules"], + globals: true, + environment: "jsdom", + }, +})