mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-13 20:56:19 -08:00
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
This commit is contained in:
1 parent
5e725a06f3
commit
a2fafcfc08
256 files changed
+43760
-883
No files matched your search
@@ -0,0 +1,88 @@
|
||||
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
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user