feat: expose streaming test run results

This commit is contained in:
a.tolmachev
2026-04-07 18:30:08 +03:00
parent 35e9c8c754
commit 1a4f0ea6f3
9 changed files with 865 additions and 91 deletions
+45 -5
View File
@@ -2546,6 +2546,47 @@ function setTextareaValue(id, value) {
element.value = safeStringify(value);
}
function describeWizardTestResult(result) {
if (result.stream_session && result.stream_session.session_id) {
return {
title: tKey('wizard.test.session_started'),
body: tfKey('wizard.test.session_started_body', {
session_id: result.stream_session.session_id,
poll_after_ms: result.stream_session.poll_after_ms
}),
isError: false,
};
}
if (result.async_job && result.async_job.job_id) {
return {
title: tKey('wizard.test.async_job_started'),
body: tfKey('wizard.test.async_job_started_body', {
job_id: result.async_job.job_id
}),
isError: false,
};
}
if (result.window) {
return {
title: result.ok ? tKey('wizard.test.window_completed') : tKey('wizard.test.failed'),
body: tfKey('wizard.test.window_completed_body', {
truncated: result.window.truncated ? tKey('wizard.boolean.yes') : tKey('wizard.boolean.no'),
has_more: result.window.has_more ? tKey('wizard.boolean.yes') : tKey('wizard.boolean.no'),
window_complete: result.window.window_complete ? tKey('wizard.boolean.yes') : tKey('wizard.boolean.no')
}),
isError: !result.ok,
};
}
return {
title: result.ok ? tKey('wizard.test.completed') : tKey('wizard.test.failed'),
body: result.ok ? tKey('wizard.test.completed_body') : tKey('wizard.test.failed_body'),
isError: !result.ok,
};
}
async function uploadInputSampleFromWizard() {
await persistCurrentDraft(true);
await window.CrankApi.uploadInputSample(
@@ -2586,12 +2627,11 @@ async function runWizardTest() {
setTextareaValue('wizard-test-request-preview', result.request_preview);
setTextareaValue('wizard-test-response-preview', result.response_preview);
setTextareaValue('wizard-test-errors', result.errors && result.errors.length ? result.errors : []);
var status = describeWizardTestResult(result);
showWizardLiveStatus(
result.ok ? tKey('wizard.test.completed') : tKey('wizard.test.failed'),
result.ok
? tKey('wizard.test.completed_body')
: tKey('wizard.test.failed_body'),
!result.ok
status.title,
status.body,
status.isError
);
}