Spaces:
Build error
Build error
import posthog from "posthog-js"; | |
import { afterEach, describe, expect, it, vi } from "vitest"; | |
import { handleCaptureConsent } from "#/utils/handle-capture-consent"; | |
describe("handleCaptureConsent", () => { | |
const optInSpy = vi.spyOn(posthog, "opt_in_capturing"); | |
const optOutSpy = vi.spyOn(posthog, "opt_out_capturing"); | |
const hasOptedInSpy = vi.spyOn(posthog, "has_opted_in_capturing"); | |
const hasOptedOutSpy = vi.spyOn(posthog, "has_opted_out_capturing"); | |
afterEach(() => { | |
vi.clearAllMocks(); | |
}); | |
it("should opt out of of capturing", () => { | |
handleCaptureConsent(false); | |
expect(optOutSpy).toHaveBeenCalled(); | |
expect(optInSpy).not.toHaveBeenCalled(); | |
}); | |
it("should opt in to capturing if the user consents", () => { | |
handleCaptureConsent(true); | |
expect(optInSpy).toHaveBeenCalled(); | |
expect(optOutSpy).not.toHaveBeenCalled(); | |
}); | |
it("should not opt in to capturing if the user is already opted in", () => { | |
hasOptedInSpy.mockReturnValueOnce(true); | |
handleCaptureConsent(true); | |
expect(optInSpy).not.toHaveBeenCalled(); | |
expect(optOutSpy).not.toHaveBeenCalled(); | |
}); | |
it("should not opt out of capturing if the user is already opted out", () => { | |
hasOptedOutSpy.mockReturnValueOnce(true); | |
handleCaptureConsent(false); | |
expect(optOutSpy).not.toHaveBeenCalled(); | |
expect(optInSpy).not.toHaveBeenCalled(); | |
}); | |
}); | |