mirror of
https://github.com/Sea-Haven-Industries/seahaven-ap.git
synced 2026-10-02 14:23:24 +00:00
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
|
|
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/);
|
||
|
|
});
|
||
|
|
});
|