Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/apps/web/app/utils/helpers/AnalyticsHelper.test.ts
T

54 lines
1.6 KiB
TypeScript

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" },
},
});
});
});