Files
iptvnator/apps/electron-backend-e2e/src/performance/xtream-benchmark-artifacts.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

56 lines
1.8 KiB
TypeScript

import { join } from 'node:path';
import {
serializeXtreamArtifactForPersistence,
type XtreamDiagnosticArtifactEvidence,
} from './xtream-diagnostic-artifacts';
import { writeXtreamExclusiveArtifact } from './xtream-exclusive-artifact-writer';
import { persistThenValidateXtreamIteration } from './xtream-benchmark-report';
import { XTREAM_SYNTHETIC_CREDENTIALS } from './xtream-scenario-driver';
import type {
XtreamArtifactSafetyContext,
XtreamRawIterationResult,
XtreamValidatedIterationResult,
} from './xtream-summary-contract';
export interface PersistedXtreamIteration {
readonly diagnosticEvidence: XtreamDiagnosticArtifactEvidence | null;
readonly iteration: XtreamValidatedIterationResult;
}
export function createXtreamArtifactSafetyContext(
controlToken: string
): XtreamArtifactSafetyContext {
return Object.freeze({
controlToken,
syntheticCredentials: XTREAM_SYNTHETIC_CREDENTIALS,
});
}
export async function writeXtreamSafeJson(
absolutePath: string,
value: unknown,
safety: XtreamArtifactSafetyContext
): Promise<void> {
const serialized = serializeXtreamArtifactForPersistence(value, safety);
await writeXtreamExclusiveArtifact(absolutePath, serialized);
}
export async function persistXtreamIteration(
iterationDirectory: string,
raw: XtreamRawIterationResult,
diagnosticEvidence: XtreamDiagnosticArtifactEvidence | null,
safety: XtreamArtifactSafetyContext
): Promise<PersistedXtreamIteration> {
const iteration = await persistThenValidateXtreamIteration(
raw,
safety,
(serialized) =>
writeXtreamExclusiveArtifact(
join(iterationDirectory, 'result.json'),
serialized
)
);
return Object.freeze({ diagnosticEvidence, iteration });
}