39 lines
1003 B
TypeScript
39 lines
1003 B
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import {
|
|
isRangeInsideHotRetention,
|
|
resolveHotRangeDecision,
|
|
} from "@/internal/analytics/cloudflare/dateRange.js";
|
|
|
|
const now = new Date("2026-06-22T00:00:00.000Z");
|
|
|
|
describe("Cloudflare analytics hot retention range", () => {
|
|
test("accepts ranges fully inside 90 days", () => {
|
|
expect(
|
|
isRangeInsideHotRetention({
|
|
startMs: Date.parse("2026-04-01T00:00:00.000Z"),
|
|
endMs: Date.parse("2026-06-20T00:00:00.000Z"),
|
|
now,
|
|
retentionDays: 90,
|
|
}),
|
|
).toBe(true);
|
|
});
|
|
|
|
test("rejects ranges older than 90 days", () => {
|
|
expect(
|
|
isRangeInsideHotRetention({
|
|
startMs: Date.parse("2026-02-01T00:00:00.000Z"),
|
|
endMs: Date.parse("2026-06-20T00:00:00.000Z"),
|
|
now,
|
|
retentionDays: 90,
|
|
}),
|
|
).toBe(false);
|
|
});
|
|
|
|
test("resolves missing custom range as hot query", () => {
|
|
expect(resolveHotRangeDecision({ now, retentionDays: 90 })).toEqual({
|
|
canUseHotStore: true,
|
|
reason: "default-hot-range",
|
|
});
|
|
});
|
|
});
|