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

34 lines
893 B
TypeScript

import { beforeAll, describe, expect, it, vi } from "vitest";
vi.mock("@hivegrid/config", () => ({
loadRequiredWebConfig: () => ({
nodeEnv: "test",
routing: {},
sessionSecret: "test-session-secret-that-is-long-enough",
}),
resolveSessionCookiePolicy: () => ({
name: "app_analytics",
httpOnly: true,
path: "/",
sameSite: "lax",
secure: false,
}),
}));
let generateAnalyticsUserId: () => string;
beforeAll(async () => {
({ generateAnalyticsUserId } = await import("./analyticsCookie.server"));
});
describe("analytics identifier", () => {
it("uses a compact 128-bit base64url identifier", () => {
const first = generateAnalyticsUserId();
const second = generateAnalyticsUserId();
expect(first).toMatch(/^[A-Za-z0-9_-]{22}$/);
expect(Buffer.from(first, "base64url")).toHaveLength(16);
expect(second).not.toBe(first);
});
});