34 lines
893 B
TypeScript
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);
|
|
});
|
|
});
|