diff --git a/packages/cli/src/__tests__/telemetry.test.ts b/packages/cli/src/__tests__/telemetry.test.ts index 2ee7490e5..c2a9078cc 100644 --- a/packages/cli/src/__tests__/telemetry.test.ts +++ b/packages/cli/src/__tests__/telemetry.test.ts @@ -13,6 +13,7 @@ import { afterEach, beforeEach, describe, expect, it, mock } from "bun:test"; import { isString } from "@openrouter/spawn-shared"; import * as v from "valibot"; +import { _testHelpers as telemetryTestHelpers } from "../shared/telemetry.js"; // ── Schemas for validating PostHog payloads ───────────────────────────────── @@ -127,6 +128,10 @@ describe("telemetry", () => { afterEach(() => { global.fetch = originalFetch; + // Disable telemetry so fire-and-forget fetch calls don't leak into other + // test files running in the same process (the root cause of flaky + // hetzner-cov and digitalocean-token test failures). + telemetryTestHelpers.enabled = false; if (originalTelemetry !== undefined) { process.env.SPAWN_TELEMETRY = originalTelemetry; } else { diff --git a/packages/cli/src/shared/telemetry.ts b/packages/cli/src/shared/telemetry.ts index f9d45dde4..dacb0e5c9 100644 --- a/packages/cli/src/shared/telemetry.ts +++ b/packages/cli/src/shared/telemetry.ts @@ -270,3 +270,15 @@ function sendEvent(event: string, properties: Record): void { }), ); } + +// ── Test Helpers ────────────────────────────────────────────────────────────── + +/** Exposed for test cleanup — prevents telemetry from leaking across test files. */ +export const _testHelpers = { + get enabled(): boolean { + return _enabled; + }, + set enabled(val: boolean) { + _enabled = val; + }, +};