import { describe, it, expect, beforeEach } from "vitest"; import { RecordingConsent } from "@repo/core-testing/instrumentation"; import { withdrawHandler } from "@/handlers/withdraw.handler"; describe("withdrawHandler", () => { let consent: RecordingConsent; beforeEach(async () => { consent = new RecordingConsent(); await consent.grant("analytics"); }); it("returns { success: true }", async () => { const result = await withdrawHandler(consent, { category: "analytics" }); expect(result).toEqual({ success: true }); }); it("calls consent.withdraw with the given category", async () => { await withdrawHandler(consent, { category: "analytics" }); expect(consent.withdrawals).toHaveLength(1); expect(consent.withdrawals[0]).toBe("analytics"); }); it("category is no longer granted after withdraw", async () => { await withdrawHandler(consent, { category: "analytics" }); expect(consent.isGranted("analytics")).toBe(false); }); });