mirror of
https://github.com/formbricks/formbricks.git
synced 2026-05-06 19:35:53 -05:00
88 lines
2.3 KiB
TypeScript
88 lines
2.3 KiB
TypeScript
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
|
|
|
|
const ORIGINAL_ENV = process.env;
|
|
|
|
const setTestEnv = (overrides: Record<string, string | undefined> = {}) => {
|
|
process.env = {
|
|
...ORIGINAL_ENV,
|
|
NODE_ENV: "test",
|
|
DATABASE_URL: "https://example.com/db",
|
|
ENCRYPTION_KEY: "12345678901234567890123456789012",
|
|
HUB_API_URL: "https://hub.formbricks.local",
|
|
...overrides,
|
|
};
|
|
};
|
|
|
|
describe("env", () => {
|
|
beforeEach(() => {
|
|
vi.resetModules();
|
|
});
|
|
|
|
afterEach(() => {
|
|
process.env = ORIGINAL_ENV;
|
|
});
|
|
|
|
test("allows ambient DEBUG values from external tooling", async () => {
|
|
setTestEnv({
|
|
DEBUG: "pnpm:*",
|
|
});
|
|
|
|
const { env } = await import("./env");
|
|
|
|
expect(env.DEBUG).toBe("pnpm:*");
|
|
});
|
|
|
|
test("uses the default password reset token lifetime when env var is not set", async () => {
|
|
setTestEnv({
|
|
PASSWORD_RESET_TOKEN_LIFETIME_MINUTES: undefined,
|
|
});
|
|
|
|
const { env } = await import("./env");
|
|
expect(env.PASSWORD_RESET_TOKEN_LIFETIME_MINUTES).toBe(30);
|
|
});
|
|
|
|
test("uses the configured password reset token lifetime", async () => {
|
|
setTestEnv({
|
|
PASSWORD_RESET_TOKEN_LIFETIME_MINUTES: "45",
|
|
});
|
|
|
|
const { env } = await import("./env");
|
|
|
|
expect(env.PASSWORD_RESET_TOKEN_LIFETIME_MINUTES).toBe(45);
|
|
});
|
|
|
|
test("fails to load when the password reset token lifetime is not an integer", async () => {
|
|
setTestEnv({
|
|
PASSWORD_RESET_TOKEN_LIFETIME_MINUTES: "30minutes",
|
|
});
|
|
|
|
await expect(import("./env")).rejects.toThrow("Invalid environment variables");
|
|
});
|
|
|
|
test("fails to load when the password reset token lifetime is out of range", async () => {
|
|
setTestEnv({
|
|
PASSWORD_RESET_TOKEN_LIFETIME_MINUTES: "121",
|
|
});
|
|
|
|
await expect(import("./env")).rejects.toThrow("Invalid environment variables");
|
|
});
|
|
|
|
test("allows enabling DEBUG_SHOW_RESET_LINK", async () => {
|
|
setTestEnv({
|
|
DEBUG_SHOW_RESET_LINK: "1",
|
|
});
|
|
|
|
const { env } = await import("./env");
|
|
|
|
expect(env.DEBUG_SHOW_RESET_LINK).toBe("1");
|
|
});
|
|
|
|
test("fails to load when DEBUG_SHOW_RESET_LINK is invalid", async () => {
|
|
setTestEnv({
|
|
DEBUG_SHOW_RESET_LINK: "true",
|
|
});
|
|
|
|
await expect(import("./env")).rejects.toThrow("Invalid environment variables");
|
|
});
|
|
});
|