oof
This commit is contained in:
@@ -1,15 +1,59 @@
|
||||
import { defineConfig } from "vitest/config";
|
||||
import { resolve } from "path";
|
||||
import { readFileSync } from "fs";
|
||||
import solid from "vite-plugin-solid";
|
||||
|
||||
function loadEnvFile(filePath: string): Record<string, string> {
|
||||
try {
|
||||
const content = readFileSync(filePath, "utf-8");
|
||||
const env: Record<string, string> = {};
|
||||
for (const line of content.split("\n")) {
|
||||
const trimmed = line.trim();
|
||||
if (!trimmed || trimmed.startsWith("#")) continue;
|
||||
const eqIndex = trimmed.indexOf("=");
|
||||
if (eqIndex === -1) continue;
|
||||
const key = trimmed.slice(0, eqIndex).trim();
|
||||
let value = trimmed.slice(eqIndex + 1).trim();
|
||||
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
||||
value = value.slice(1, -1);
|
||||
}
|
||||
env[key] = value;
|
||||
}
|
||||
return env;
|
||||
} catch {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
const env = { ...loadEnvFile(".env"), ...loadEnvFile(".env.local") };
|
||||
const mocksDir = resolve(__dirname, "./test/__mocks__");
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [solid()],
|
||||
test: {
|
||||
environment: "jsdom",
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
"~": resolve(__dirname, "./src"),
|
||||
setupFiles: ["./test/setup.ts"],
|
||||
exclude: ["**/node_modules/**", "**/e2e/**", "**/dist/**"],
|
||||
env: {
|
||||
RESEND_API_KEY: env.RESEND_API_KEY ?? "",
|
||||
STRIPE_SECRET_KEY: env.STRIPE_SECRET_KEY ?? "",
|
||||
STRIPE_WEBHOOK_SECRET: env.STRIPE_WEBHOOK_SECRET ?? "",
|
||||
STRIPE_PRICE_BASIC: env.STRIPE_PRICE_BASIC ?? "",
|
||||
STRIPE_PRICE_PLUS: env.STRIPE_PRICE_PLUS ?? "",
|
||||
STRIPE_PRICE_PREMIUM: env.STRIPE_PRICE_PREMIUM ?? "",
|
||||
OPENAI_API_KEY: env.OPENAI_API_KEY ?? "",
|
||||
JWT_SECRET: env.JWT_SECRET ?? "test-secret-for-testing",
|
||||
},
|
||||
},
|
||||
resolve: {
|
||||
alias: [
|
||||
{ find: "~", replacement: resolve(__dirname, "./src") },
|
||||
{ find: /^ws$/, replacement: resolve(mocksDir, "ws.js") },
|
||||
{ find: /^@libsql\/client$/, replacement: resolve(mocksDir, "libsql.js") },
|
||||
{ find: /^drizzle-orm\/libsql\/migrator$/, replacement: resolve(mocksDir, "drizzle-orm-libsql-migrator.js") },
|
||||
{ find: /^drizzle-orm\/libsql$/, replacement: resolve(mocksDir, "drizzle-orm-libsql.js") },
|
||||
{ find: /^drizzle-orm\/sqlite-core$/, replacement: resolve(mocksDir, "drizzle-orm-sqlite-core.js") },
|
||||
{ find: /^drizzle-orm$/, replacement: resolve(mocksDir, "drizzle-orm.js") },
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user