import { describe, expect, it, vi } from "vitest"; vi.mock("platform", () => ({ default: { name: "Example Browser", version: "1.2.3", os: { family: "Example OS", version: "4.5.6" }, }, })); import { createAnonymousAnalyticsPayload, getUserAgentDetails } from "./AnalyticsHelper"; describe("getUserAgentDetails", () => { it("loads browser details on demand and classifies the supplied user agent", async () => { await expect(getUserAgentDetails("Mozilla/5.0 (iPhone; Mobile)")).resolves.toEqual({ type: "mobile", os: { family: "Example OS", version: "4.5.6" }, browser: { name: "Example Browser", version: "1.2.3" }, }); }); }); describe("anonymous analytics payload", () => { it("never forwards authenticated user or portal identity fields", () => { expect( createAnonymousAnalyticsPayload( { userAnalyticsId: "visitor-1", userId: "user-1", portalId: "portal-1", portalUserId: "portal-user-1", ip: "192.0.2.1", referrer: { source: "newsletter" }, region: { country: "DE" }, }, { type: "desktop", os: { family: "Example OS", version: "4.5.6" }, browser: { name: "Example Browser", version: "1.2.3" }, } ) ).toEqual({ userAnalyticsId: "visitor-1", referrer: { source: "newsletter" }, region: { country: "DE" }, userAgent: { type: "desktop", os: { family: "Example OS", version: "4.5.6" }, browser: { name: "Example Browser", version: "1.2.3" }, }, }); }); });