From 94d8fe1926d4e05f699e34ec9d0056ebe0fce69d Mon Sep 17 00:00:00 2001 From: Microck Date: Mon, 2 Nov 2026 19:17:13 +0100 Subject: [PATCH] test(usage): pin the saved-history retention clock --- apps/server/src/usage/UsageService.test.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/server/src/usage/UsageService.test.ts b/apps/server/src/usage/UsageService.test.ts index 75de5ec25a4ec..657409571f011 100644 --- a/apps/server/src/usage/UsageService.test.ts +++ b/apps/server/src/usage/UsageService.test.ts @@ -2214,6 +2214,8 @@ describe("UsageService", () => { it.live("reports saved usage of a removed directory only for windows it reaches", () => Effect.gen(function* () { + // Keep the August fixture inside the 92-day retention window on every run. + yield* TestClock.setTime(Date.parse("2026-08-02T12:00:00Z")); const { transcript, settings, home } = yield* setup; yield* Effect.promise(async () => { await NodeFSP.writeFile(transcript, claudeLine(1, 5)); @@ -2224,6 +2226,7 @@ describe("UsageService", () => { Effect.provide(layerService({ prefix: "usage-service-saved-window-test", home, settings })), ); const first = yield* service.readSummary(WINDOW); + assert.strictEqual(first.buckets.length, 1); yield* Effect.promise(() => NodeFSP.rm(NodePath.join(home, "claude", "projects"), { recursive: true }), ); @@ -2240,7 +2243,12 @@ describe("UsageService", () => { assert.deepStrictEqual(later.buckets, []); assert.strictEqual(later.sources[0]?.status, "missing"); assert.strictEqual(later.sources[0]?.scannedFiles, 0); - }).pipe(Effect.scoped), + + yield* TestClock.adjust(Duration.days(93)); + const expired = yield* service.readSummary(WINDOW); + assert.deepStrictEqual(expired.buckets, []); + assert.strictEqual(expired.sources[0]?.status, "missing"); + }).pipe(Effect.scoped, Effect.provide(TestClock.layer())), ); it.live("does not share an in-flight scan after custom prices change", () =>