fix(tests): reset telemetry singleton in afterEach to prevent cross-test fetch leakage

The telemetry test calls initTelemetry() which sets _enabled=true in the
singleton module. Without resetting, logWarn/logError in subsequent test files
(e.g. hetzner-cov) trigger unexpected fetch() calls via captureWarning/captureError,
shifting mock callCount counters and causing test failures.

Add resetTelemetry() export and call it in telemetry test afterEach.

Agent: test-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
B 2026-05-22 03:20:05 +00:00
parent 2221f1155b
commit 03be92288a
3 changed files with 15 additions and 2 deletions

View file

@ -1,6 +1,6 @@
{
"name": "@openrouter/spawn",
"version": "1.1.0",
"version": "1.1.1",
"type": "module",
"bin": {
"spawn": "cli.js"

View file

@ -125,7 +125,12 @@ describe("telemetry", () => {
global.fetch = fetchMock;
});
afterEach(() => {
afterEach(async () => {
// Reset telemetry singleton state to prevent cross-test leakage.
// initTelemetry() sets _enabled=true which persists across test files,
// causing logWarn/logError in other tests to fire unexpected fetch calls.
const mod = await import("../shared/telemetry.js");
mod.resetTelemetry();
global.fetch = originalFetch;
if (originalTelemetry !== undefined) {
process.env.SPAWN_TELEMETRY = originalTelemetry;

View file

@ -238,6 +238,14 @@ export function captureError(type: string, err: unknown): void {
});
}
/** Reset telemetry state. Used by tests to prevent cross-test leakage. */
export function resetTelemetry(): void {
_enabled = false;
_userId = "";
_sessionId = "";
_context = {};
}
// ── Send ────────────────────────────────────────────────────────────────────
/** Send a single event to PostHog immediately. Fire-and-forget. */