testVisitorCacheIsBounded

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

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

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

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

uses