seahaven-ap/packages/api/src/env.test.ts

58 lines
1.4 KiB
TypeScript
Raw Normal View History

import { describe, expect, it } from "vitest";
import { loadEnv } from "./env.js";
describe("loadEnv", () => {
it("allows DEV_AUTH_BYPASS in development", () => {
const env = loadEnv({
NODE_ENV: "development",
DEV_AUTH_BYPASS: "true",
DEV_AUTH_ROLE: "viewer",
});
expect(env.devAuthBypass).toBe(true);
expect(env.devAuthRole).toBe("viewer");
expect(env.port).toBe(8787);
});
it("allows DEV_AUTH_BYPASS in test", () => {
const env = loadEnv({
NODE_ENV: "test",
DEV_AUTH_BYPASS: "true",
});
expect(env.devAuthBypass).toBe(true);
});
it("rejects DEV_AUTH_BYPASS in production", () => {
expect(() =>
loadEnv({
NODE_ENV: "production",
DEV_AUTH_BYPASS: "true",
}),
).toThrow(/DEV_AUTH_BYPASS/);
});
it("rejects DEV_AUTH_BYPASS in staging and other non-local envs", () => {
expect(() =>
loadEnv({
NODE_ENV: "staging",
DEV_AUTH_BYPASS: "true",
}),
).toThrow(/development or test/);
expect(() =>
loadEnv({
NODE_ENV: "preview",
DEV_AUTH_BYPASS: "true",
}),
).toThrow(/DEV_AUTH_BYPASS/);
});
it("requires Cognito config when bypass is off", () => {
expect(() =>
loadEnv({
NODE_ENV: "development",
DEV_AUTH_BYPASS: "false",
}),
).toThrow(/COGNITO_ISSUER/);
});
});