Files
iptvnator/apps/electron-backend-e2e/src/performance/performance-phase-duration-envelope.ts
T
4gray a2fafcfc08 test(performance): add end-to-end Xtream benchmark harness (#1300)
* docs(performance): plan Xtream benchmark

* feat(xtream-mock-server): add deterministic 100k fixture

* style(xtream-mock-server): apply repository formatting

* fix(xtream-mock-server): harden performance fixture data

* feat(xtream-mock-server): add performance control plane

* docs(performance): correct Xtream capture plan

* fix(xtream-mock-server): harden performance controls

* fix(xtream-mock-server): harden control lifecycle

* feat(performance): add Xtream preload markers

* feat(performance): trace Xtream main phases

* feat(performance): mark Xtream store publications

* feat(performance): trace Xtream database phases

* feat(performance): trace Xtream delete cancellation

* feat(performance): capture Xtream phase attribution

* feat(performance): mark Sources Xtream refresh

* test(performance): define Xtream benchmark evidence contracts

* test(performance): add Xtream benchmark runner

* test(performance): surface failure evidence writes

* test(performance): align database read clock

* test(performance): preserve capture failure contracts
2026-07-28 08:08:07 +02:00

19 lines
617 B
TypeScript

/**
* Phase duration and epoch endpoints are read from separate clocks in separate
* calls. The enclosing request/operation window is the causal upper bound.
*/
export function fitsPerformanceDurationEnvelope(
durationMs: number,
envelopeStartEpochMs: number,
envelopeEndEpochMs: number
): boolean {
return (
Number.isFinite(durationMs) &&
durationMs >= 0 &&
Number.isFinite(envelopeStartEpochMs) &&
Number.isFinite(envelopeEndEpochMs) &&
envelopeEndEpochMs >= envelopeStartEpochMs &&
durationMs <= envelopeEndEpochMs - envelopeStartEpochMs
);
}