|
|
@@ -1,3 +1,4 @@
|
|
|
+// lib/config/validateEnv.test.js
|
|
|
import { describe, it, expect } from "vitest";
|
|
|
import { validateEnv, MIN_SESSION_SECRET_LENGTH } from "./validateEnv.js";
|
|
|
|
|
|
@@ -11,17 +12,39 @@ describe("validateEnv", () => {
|
|
|
MONGODB_URI: "mongodb://localhost:27017/rhl",
|
|
|
SESSION_SECRET: validSecret(),
|
|
|
NAS_ROOT_PATH: "/mnt/niederlassungen/",
|
|
|
- // NODE_ENV intentionally omitted -> defaults to "development"
|
|
|
PORT: "3000",
|
|
|
});
|
|
|
|
|
|
expect(cfg.mongodbUri).toBe("mongodb://localhost:27017/rhl");
|
|
|
expect(cfg.sessionSecret).toBe(validSecret());
|
|
|
- expect(cfg.nasRootPath).toBe("/mnt/niederlassungen"); // trailing slash removed
|
|
|
+ expect(cfg.nasRootPath).toBe("/mnt/niederlassungen");
|
|
|
expect(cfg.nodeEnv).toBe("development");
|
|
|
expect(cfg.port).toBe(3000);
|
|
|
});
|
|
|
|
|
|
+ it("accepts optional SESSION_COOKIE_SECURE=false", () => {
|
|
|
+ expect(() =>
|
|
|
+ validateEnv({
|
|
|
+ MONGODB_URI: "mongodb://localhost:27017/rhl",
|
|
|
+ SESSION_SECRET: validSecret(),
|
|
|
+ NAS_ROOT_PATH: "/mnt/niederlassungen",
|
|
|
+ NODE_ENV: "production",
|
|
|
+ SESSION_COOKIE_SECURE: "false",
|
|
|
+ })
|
|
|
+ ).not.toThrow();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("rejects invalid SESSION_COOKIE_SECURE values", () => {
|
|
|
+ expect(() =>
|
|
|
+ validateEnv({
|
|
|
+ MONGODB_URI: "mongodb://localhost:27017/rhl",
|
|
|
+ SESSION_SECRET: validSecret(),
|
|
|
+ NAS_ROOT_PATH: "/mnt/niederlassungen",
|
|
|
+ SESSION_COOKIE_SECURE: "maybe",
|
|
|
+ })
|
|
|
+ ).toThrow(/SESSION_COOKIE_SECURE/i);
|
|
|
+ });
|
|
|
+
|
|
|
it("throws with a clear error if required vars are missing", () => {
|
|
|
try {
|
|
|
validateEnv({});
|
|
|
@@ -36,9 +59,6 @@ describe("validateEnv", () => {
|
|
|
expect(String(err.message)).toContain(
|
|
|
"Missing required environment variables:"
|
|
|
);
|
|
|
- expect(String(err.message)).toContain("- MONGODB_URI");
|
|
|
- expect(String(err.message)).toContain("- SESSION_SECRET");
|
|
|
- expect(String(err.message)).toContain("- NAS_ROOT_PATH");
|
|
|
}
|
|
|
});
|
|
|
|