mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-28 17:43:05 +00:00
40 lines
978 B
TypeScript
40 lines
978 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { pruneMapToMaxSize } from "./map-size.js";
|
|
|
|
describe("pruneMapToMaxSize", () => {
|
|
it("keeps the newest entries after flooring fractional limits", () => {
|
|
const map = new Map([
|
|
["a", 1],
|
|
["b", 2],
|
|
["c", 3],
|
|
]);
|
|
|
|
pruneMapToMaxSize(map, 2.9);
|
|
|
|
expect([...map.entries()]).toEqual([
|
|
["b", 2],
|
|
["c", 3],
|
|
]);
|
|
});
|
|
|
|
it("clears maps for zero or negative limits and leaves undersized maps untouched", () => {
|
|
const cleared = new Map([
|
|
["a", 1],
|
|
["b", 2],
|
|
]);
|
|
pruneMapToMaxSize(cleared, 0);
|
|
expect([...cleared.entries()]).toEqual([]);
|
|
|
|
const alsoCleared = new Map([
|
|
["a", 1],
|
|
["b", 2],
|
|
]);
|
|
pruneMapToMaxSize(alsoCleared, -4);
|
|
expect([...alsoCleared.entries()]).toEqual([]);
|
|
|
|
const unchanged = new Map([["a", 1]]);
|
|
pruneMapToMaxSize(unchanged, 5);
|
|
expect([...unchanged.entries()]).toEqual([["a", 1]]);
|
|
});
|
|
});
|