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/); }); });