import { describe, expect, mock, test } from "bun:test";
mock.module("cloudflare:workers", () => ({ env: {}, waitUntil: () => undefined }));
const { LruCache } = await import("./resolve-guard");
describe("LruCache", () => {
test("evicts the least recently used entry instead of clearing", () => {
const cache = new LruCache<number>(2);
cache.set("a", 1);
cache.set("b", 2);
expect(cache.get("a")).toBe(1);
cache.set("c", 3);
expect(cache.get("b")).toBeUndefined();
expect(cache.get("a")).toBe(1);
expect(cache.get("c")).toBe(3);
expect(cache.size).toBe(2);
});
test("overwriting a key refreshes it without growing", () => {
const cache = new LruCache<number>(2);
cache.set("a", 1);
cache.set("b", 2);
cache.set("a", 3);
cache.set("c", 4);
expect(cache.get("a")).toBe(3);
expect(cache.get("b")).toBeUndefined();
});
});