testVisitorCacheIsBounded

tcmts.registry.test.testVisitorCacheIsBounded · #o5ujcskb · term

What's remembered of visitors stays bounded: the least lately used go past the limit.

import { cached, REGISTRY_LIMITS, visitorCache } from "#codebase/tcmts/registry";
import assert from "node:assert/strict";

export const testVisitorCacheIsBounded = async () => {
  visitorCache.clear();
  try {
    for (let i = 0; i < REGISTRY_LIMITS.rememberedVisitors + 50; i++)
      await cached(`k${i}`, async () => new Set([String(i)]));
    assert.equal(visitorCache.size, REGISTRY_LIMITS.rememberedVisitors);
    assert.ok(!visitorCache.has("k0"), "the oldest went");
    assert.ok(visitorCache.has(`k${REGISTRY_LIMITS.rememberedVisitors + 49}`));
  } finally {
    visitorCache.clear();
  }
}

uses