core: improve file cleanup by extracting timestamp logic from ID and using Bun.Glob for efficient file scanning

This commit is contained in:
Aiden Cline
2026-01-07 15:04:29 -06:00
parent df4a973891
commit f82f9221e6
3 changed files with 55 additions and 14 deletions
+38 -1
View File
@@ -1,5 +1,7 @@
import { describe, test, expect } from "bun:test"
import { describe, test, expect, afterAll } from "bun:test"
import { Truncate } from "../../src/tool/truncation"
import { Identifier } from "../../src/id/id"
import fs from "fs/promises"
import path from "path"
const FIXTURES_DIR = path.join(import.meta.dir, "fixtures")
@@ -117,4 +119,39 @@ describe("Truncate", () => {
expect(result.outputPath).toBeUndefined()
})
})
describe("cleanup", () => {
const DAY_MS = 24 * 60 * 60 * 1000
let oldFile: string
let recentFile: string
afterAll(async () => {
await fs.unlink(oldFile).catch(() => {})
await fs.unlink(recentFile).catch(() => {})
})
test("deletes files older than 7 days and preserves recent files", async () => {
await fs.mkdir(Truncate.DIR, { recursive: true })
// Create an old file (10 days ago)
const oldTimestamp = Date.now() - 10 * DAY_MS
const oldId = Identifier.create("tool", false, oldTimestamp)
oldFile = path.join(Truncate.DIR, oldId)
await Bun.write(Bun.file(oldFile), "old content")
// Create a recent file (3 days ago)
const recentTimestamp = Date.now() - 3 * DAY_MS
const recentId = Identifier.create("tool", false, recentTimestamp)
recentFile = path.join(Truncate.DIR, recentId)
await Bun.write(Bun.file(recentFile), "recent content")
await Truncate.cleanup()
// Old file should be deleted
expect(await Bun.file(oldFile).exists()).toBe(false)
// Recent file should still exist
expect(await Bun.file(recentFile).exists()).toBe(true)
})
})
})