a cache for slack profile pictures and emojis
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879import { describe, expect, it } from "bun:test";import { groupEndpoint, selectBucketTable } from "../lib/analytics-queries";
describe("selectBucketTable", () => { it("returns 10min table for <= 1 day", () => { expect(selectBucketTable(1)).toEqual({ table: "traffic_10min", bucketSize: 600, }); expect(selectBucketTable(0.5)).toEqual({ table: "traffic_10min", bucketSize: 600, }); });
it("returns hourly table for 2-30 days", () => { expect(selectBucketTable(7)).toEqual({ table: "traffic_hourly", bucketSize: 3600, }); expect(selectBucketTable(30)).toEqual({ table: "traffic_hourly", bucketSize: 3600, }); });
it("returns daily table for > 30 days", () => { expect(selectBucketTable(31)).toEqual({ table: "traffic_daily", bucketSize: 86400, }); expect(selectBucketTable(90)).toEqual({ table: "traffic_daily", bucketSize: 86400, }); });});
describe("groupEndpoint", () => { it("groups dashboard routes", () => { expect(groupEndpoint("/")).toBe("Dashboard"); expect(groupEndpoint("/dashboard")).toBe("Dashboard"); });
it("groups health check", () => { expect(groupEndpoint("/health")).toBe("Health Check"); });
it("groups API documentation", () => { expect(groupEndpoint("/swagger")).toBe("API Documentation"); expect(groupEndpoint("/swagger.json")).toBe("API Documentation"); });
it("groups emoji endpoints", () => { expect(groupEndpoint("/emojis")).toBe("Emoji List"); expect(groupEndpoint("/emojis/hackshark")).toBe("Emoji Data"); expect(groupEndpoint("/emojis/EMOJI_NAME")).toBe("Emoji Data"); expect(groupEndpoint("/emojis/hackshark/r")).toBe("Emoji Redirects"); expect(groupEndpoint("/emojis/EMOJI_NAME/r")).toBe("Emoji Redirects"); });
it("groups user endpoints", () => { expect(groupEndpoint("/users/U062UG485EE")).toBe("User Data"); expect(groupEndpoint("/users/USER_ID")).toBe("User Data"); expect(groupEndpoint("/users/U062UG485EE/r")).toBe("User Redirects"); expect(groupEndpoint("/users/USER_ID/r")).toBe("User Redirects"); });
it("groups cache management", () => { expect(groupEndpoint("/users/U062UG485EE/purge")).toBe("Cache Management"); expect(groupEndpoint("/emojis/purge")).toBe("Cache Management"); expect(groupEndpoint("/reset")).toBe("Cache Management"); });
it("returns Other for unknown endpoints", () => { expect(groupEndpoint("/unknown")).toBe("Other"); });});