seahaven-ap/packages/api/src/env.test.ts
Adam Moussa 9d3646876e
feat(api): stand up Hono Drizzle foundation with auth and Redocly (AP-14) (#12)
* feat(api): stand up Hono Drizzle foundation with auth and Redocly

* fix(api): bump drizzle-orm and hono node-server past audit highs

* fix(api): harden auth upsert and Cognito token verification
2026-08-11 00:10:49 +00:00

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