Files
sass-mohfarawati/tests/contact-protection.test.ts
T

66 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
buildDefaultContactProtectionSettings,
parseContactProtectionValue,
toContactProtectionFormValues,
} from "../lib/contact-protection";
describe("contact protection helpers", () => {
it("builds safe defaults", () => {
expect(buildDefaultContactProtectionSettings()).toEqual({
turnstile: {
enabled: false,
siteKey: "",
secretKey: "",
},
rateLimit: {
enabled: true,
maxRequests: 5,
windowMinutes: 10,
},
});
});
it("parses stored settings and trims keys", () => {
const settings = parseContactProtectionValue(
JSON.stringify({
turnstile: {
enabled: true,
siteKey: " 0x4AAAAA ",
secretKey: "secret",
},
rateLimit: {
enabled: true,
maxRequests: "8",
windowMinutes: "15",
},
}),
);
expect(settings.turnstile.enabled).toBe(true);
expect(settings.turnstile.siteKey).toBe("0x4AAAAA");
expect(settings.turnstile.secretKey).toBe("secret");
expect(settings.rateLimit.maxRequests).toBe(8);
expect(settings.rateLimit.windowMinutes).toBe(15);
});
it("hides the stored secret in form values", () => {
const values = toContactProtectionFormValues({
turnstile: {
enabled: true,
siteKey: "site-key",
secretKey: "secret-key",
},
rateLimit: {
enabled: true,
maxRequests: 5,
windowMinutes: 10,
},
});
expect(values.turnstile.secretKey).toBe("");
expect(values.turnstile.hasSecretKey).toBe(true);
});
});