const { validateEnvironment, getOptionalFeatureStatus } = require("../../app/config/env.config"); const valid = { NODE_ENV: "test", PORT: "3070", DB_HOST: "localhost", DB_PORT: "3306", DB_NAME: "test", DB_USER: "test", DB_PASSWORD: "", JWT_SECRET: "a".repeat(32), REFRESH_TOKEN_SECRET: "b".repeat(32), REDIS_HOST: "localhost", REDIS_PORT: "6379", FRONTEND_URL: "http://localhost:3000", }; describe("environment validation", () => { test("accepts the critical API configuration", () => { expect(validateEnvironment(valid)).toMatchObject({ PORT: 3070, DB_NAME: "test", RUN_CRON: false }); }); test("fails safely and names invalid variables without values", () => { expect(() => validateEnvironment({ ...valid, JWT_SECRET: "short" })).toThrow("JWT_SECRET"); }); test("keeps mail and S3 optional", () => { expect(getOptionalFeatureStatus(valid)).toMatchObject({ mail: false, s3: false }); }); });