mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
* 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
89 lines
3.1 KiB
TypeScript
89 lines
3.1 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import { describe, it } from 'node:test';
|
|
|
|
import { XTREAM_SCENARIO_ID } from './xtream-benchmark-contract';
|
|
import {
|
|
createXtreamRendererConsoleErrorBreakdown,
|
|
recordXtreamRendererConsoleError,
|
|
validXtreamRendererConsoleErrorEvidence,
|
|
} from './xtream-renderer-console-errors';
|
|
|
|
const cancelledInvoke =
|
|
'Error invoking remote method DB_SAVE_CONTENT: AbortError: ' +
|
|
'Operation "save-content" was cancelled';
|
|
|
|
describe('Xtream renderer console error evidence', () => {
|
|
it('accepts only the exact three current IPC cancellation errors', () => {
|
|
const exact = createXtreamRendererConsoleErrorBreakdown();
|
|
for (const message of [
|
|
`Error saving Xtream content: ${cancelledInvoke}`,
|
|
`[withContent] Error fetching content ${cancelledInvoke}`,
|
|
`[withContent] Error initializing content ${cancelledInvoke}`,
|
|
]) {
|
|
recordXtreamRendererConsoleError(
|
|
exact,
|
|
XTREAM_SCENARIO_ID.CANCEL_IMPORT,
|
|
message
|
|
);
|
|
}
|
|
|
|
assert.equal(
|
|
validXtreamRendererConsoleErrorEvidence(
|
|
3,
|
|
exact,
|
|
XTREAM_SCENARIO_ID.CANCEL_IMPORT
|
|
),
|
|
true
|
|
);
|
|
assert.equal(
|
|
validXtreamRendererConsoleErrorEvidence(
|
|
3,
|
|
exact,
|
|
XTREAM_SCENARIO_ID.INITIAL_IMPORT_LARGE
|
|
),
|
|
false
|
|
);
|
|
|
|
for (const messages of [
|
|
['generic error', 'generic error', 'generic error'],
|
|
[
|
|
`Error saving Xtream content: ${cancelledInvoke}`,
|
|
`[withContent] Error fetching content ${cancelledInvoke}`,
|
|
],
|
|
[
|
|
`Error saving Xtream content: ${cancelledInvoke}`,
|
|
`[withContent] Error fetching content ${cancelledInvoke}`,
|
|
`[withContent] Error fetching content ${cancelledInvoke}`,
|
|
],
|
|
[
|
|
'Error saving Xtream content: request failed',
|
|
'[withContent] Error fetching content request failed',
|
|
'[withContent] Error initializing content request failed',
|
|
],
|
|
[
|
|
`Error saving Xtream content: ${cancelledInvoke}`,
|
|
`[withContent] Error fetching content ${cancelledInvoke}`,
|
|
`[withContent] Error initializing content ${cancelledInvoke}`,
|
|
'unexpected fourth error',
|
|
],
|
|
]) {
|
|
const candidate = createXtreamRendererConsoleErrorBreakdown();
|
|
for (const message of messages) {
|
|
recordXtreamRendererConsoleError(
|
|
candidate,
|
|
XTREAM_SCENARIO_ID.CANCEL_IMPORT,
|
|
message
|
|
);
|
|
}
|
|
assert.equal(
|
|
validXtreamRendererConsoleErrorEvidence(
|
|
messages.length,
|
|
candidate,
|
|
XTREAM_SCENARIO_ID.CANCEL_IMPORT
|
|
),
|
|
false
|
|
);
|
|
}
|
|
});
|
|
});
|