import { afterEach, describe, expect, test } from 'bun:test' import { getPrivacyLevel, isEssentialTrafficOnly, isTelemetryDisabled, getEssentialTrafficOnlyReason, } from '../privacyLevel' describe('getPrivacyLevel', () => { const originalDisableNonessential = process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC const originalDisableTelemetry = process.env.DISABLE_TELEMETRY afterEach(() => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC delete process.env.DISABLE_TELEMETRY if (originalDisableNonessential !== undefined) { process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = originalDisableNonessential } if (originalDisableTelemetry !== undefined) { process.env.DISABLE_TELEMETRY = originalDisableTelemetry } }) test("returns 'default' when no env vars set", () => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC delete process.env.DISABLE_TELEMETRY expect(getPrivacyLevel()).toBe('default') }) test("returns 'essential-traffic' when CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set", () => { process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = '1' delete process.env.DISABLE_TELEMETRY expect(getPrivacyLevel()).toBe('essential-traffic') }) test("returns 'no-telemetry' when DISABLE_TELEMETRY is set", () => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC process.env.DISABLE_TELEMETRY = '1' expect(getPrivacyLevel()).toBe('no-telemetry') }) test("'essential-traffic' takes priority over 'no-telemetry'", () => { process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = '1' process.env.DISABLE_TELEMETRY = '1' expect(getPrivacyLevel()).toBe('essential-traffic') }) }) describe('isEssentialTrafficOnly', () => { const original = process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC afterEach(() => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC if (original !== undefined) process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = original }) test("returns true for 'essential-traffic' level", () => { process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = '1' expect(isEssentialTrafficOnly()).toBe(true) }) test("returns false for 'default' level", () => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC delete process.env.DISABLE_TELEMETRY expect(isEssentialTrafficOnly()).toBe(false) }) test("returns false for 'no-telemetry' level", () => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC process.env.DISABLE_TELEMETRY = '1' expect(isEssentialTrafficOnly()).toBe(false) }) }) describe('isTelemetryDisabled', () => { afterEach(() => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC delete process.env.DISABLE_TELEMETRY }) test("returns true for 'no-telemetry' level", () => { process.env.DISABLE_TELEMETRY = '1' expect(isTelemetryDisabled()).toBe(true) }) test("returns true for 'essential-traffic' level", () => { process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = '1' expect(isTelemetryDisabled()).toBe(true) }) test("returns false for 'default' level", () => { expect(isTelemetryDisabled()).toBe(false) }) }) describe('getEssentialTrafficOnlyReason', () => { afterEach(() => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC }) test('returns env var name when restricted', () => { process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = '1' expect(getEssentialTrafficOnlyReason()).toBe( 'CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC', ) }) test('returns null when unrestricted', () => { delete process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC expect(getEssentialTrafficOnlyReason()).toBeNull() }) })