A custom profile that mounts no telemetry-otel row exports nothing, so DSH_TELEMETRY_DISABLED must not fail its boot (CI exports the switch globally, which broke the lifecycle-fixture profile). The web-app dist resolution test accepts the fail-loud unbuilt outcome the CI coverage lane sees before any build, and the headless spec covers the idle-anchor and pre-start skip branches under the per-file gate.
23 lines
964 B
TypeScript
23 lines
964 B
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { resolveTelemetryPatch } from '../src/profile-boot.ts'
|
|
|
|
describe('resolveTelemetryPatch', () => {
|
|
it('keeps telemetry enabled when the switch is unset or empty', () => {
|
|
expect(resolveTelemetryPatch(undefined, true)).toBeUndefined()
|
|
expect(resolveTelemetryPatch('', true)).toBeUndefined()
|
|
})
|
|
|
|
it('disables on ANY non-empty value, including falsy-looking ones', () => {
|
|
for (const value of ['1', '0', 'false', 'no']) {
|
|
expect(resolveTelemetryPatch(value, true)).toEqual({ id: 'telemetry-otel', disabled: true })
|
|
}
|
|
})
|
|
|
|
it('is trivially satisfied by a composition without the telemetry row', () => {
|
|
// A custom profile need not mount telemetry: nothing exports, so the
|
|
// privacy switch has nothing to disable and generates no patch.
|
|
expect(resolveTelemetryPatch('1', false)).toBeUndefined()
|
|
expect(resolveTelemetryPatch(undefined, false)).toBeUndefined()
|
|
})
|
|
})
|