Kuma/tests/marketing/unsubscribe-token.test.ts
2026-10-02 17:31:08 +02:00

30 lines
1 KiB
TypeScript

import { describe, it, expect, beforeEach } from "vitest";
import {
createUnsubscribeToken,
verifyUnsubscribeToken,
} from "@/src/modules/marketing/lib/unsubscribe-token";
beforeEach(() => {
process.env.MARKETING_TOKEN_SECRET = "test-secret";
});
describe("Abmelde-Token", () => {
it("liefert Kunde und Studio zurück", () => {
const token = createUnsubscribeToken("user-1", "biz-1");
expect(verifyUnsubscribeToken(token)).toEqual({ userId: "user-1", businessId: "biz-1" });
});
it("lehnt veränderte Tokens ab", () => {
const token = createUnsubscribeToken("user-1", "biz-1");
const forged = token.replace("user-1", "user-2");
expect(verifyUnsubscribeToken(forged)).toBeNull();
expect(verifyUnsubscribeToken("kaputt")).toBeNull();
expect(verifyUnsubscribeToken(null)).toBeNull();
});
it("lehnt Tokens mit anderem Secret ab", () => {
const token = createUnsubscribeToken("user-1", "biz-1");
process.env.MARKETING_TOKEN_SECRET = "anderes-secret";
expect(verifyUnsubscribeToken(token)).toBeNull();
});
});