Files
HiveGrid-Wireframes/hivegrid-cloud/packages/captcha/src/config.test.ts
T

33 lines
1.4 KiB
TypeScript

import { describe, it, expect } from "vitest";
import { resolveCaptchaConfig, getSitekey, isCaptchaConfigured } from "./config.js";
describe("resolveCaptchaConfig", () => {
it("maps env vars to config", () => {
const cfg = resolveCaptchaConfig({
MCAPTCHA_INSTANCE_URL: "https://captcha.tool-ctrl.de",
MCAPTCHA_ACCOUNT_SECRET: "secret",
MCAPTCHA_SITEKEY_LOGIN: "login-key",
MCAPTCHA_SITEKEY_FORMS: "forms-key",
MCAPTCHA_SITEKEY_BOOKING: "booking-key",
});
expect(cfg.provider).toBe("mcaptcha");
expect(cfg.instanceUrl).toBe("https://captcha.tool-ctrl.de");
expect(getSitekey(cfg, "login")).toBe("login-key");
expect(getSitekey(cfg, "booking")).toBe("booking-key");
expect(isCaptchaConfigured(cfg)).toBe(true);
});
it("defaults failOpen to true and respects explicit false", () => {
expect(resolveCaptchaConfig({}).failOpen).toBe(true);
expect(resolveCaptchaConfig({ CAPTCHA_FAIL_OPEN: "false" }).failOpen).toBe(false);
expect(resolveCaptchaConfig({ CAPTCHA_FAIL_OPEN: "true" }).failOpen).toBe(true);
});
it("treats blank env values as undefined and reports unconfigured", () => {
const cfg = resolveCaptchaConfig({ MCAPTCHA_INSTANCE_URL: " ", MCAPTCHA_ACCOUNT_SECRET: "" });
expect(cfg.instanceUrl).toBeUndefined();
expect(cfg.accountSecret).toBeUndefined();
expect(isCaptchaConfigured(cfg)).toBe(false);
});
});