Skip to content

Commit 855f65d

Browse files
committed
refactor complex reportAndWrite
1 parent 9049985 commit 855f65d

1 file changed

Lines changed: 58 additions & 39 deletions

File tree

smoke-tests/smoke-test.mjs

Lines changed: 58 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -408,55 +408,74 @@ async function probeFrontendPlugins(plugins, port, pluginsRoot) {
408408
// Reporting
409409
// ---------------------------------------------------------------------------
410410

411+
function logPassResult(result) {
412+
if (result.pluginId) {
413+
return ` PASS ${result.pkgName} → /api/${result.pluginId} (${result.http})`;
414+
}
415+
if (isFrontendRole(result.role)) {
416+
return ` PASS ${result.pkgName} (${result.role})`;
417+
}
418+
return null;
419+
}
420+
421+
function logResultAndCollectFailures(result, failedPlugins) {
422+
const statusHandlers = {
423+
skip: () => ({ line: ` SKIP ${result.pkgName} (${result.role})` }),
424+
pass: () => ({ line: logPassResult(result) }),
425+
warn: () => ({
426+
line: ` WARN ${result.pkgName} → /api/${result.pluginId} (404 — pluginId guess may be wrong)`,
427+
}),
428+
"fail-bundle": () => ({
429+
line: ` FAIL ${result.pkgName} [bundle] ${result.detail}`,
430+
failed: true,
431+
}),
432+
"fail-load": () => ({
433+
line: ` FAIL ${result.pkgName} [load] ${result.detail}`,
434+
failed: true,
435+
}),
436+
};
437+
438+
const handled = statusHandlers[result.status]?.() ?? {
439+
line: ` FAIL ${result.pkgName} ${result.error}`,
440+
failed: true,
441+
};
442+
443+
if (handled.line) {
444+
console.log(handled.line);
445+
}
446+
if (handled.failed) {
447+
failedPlugins.push(result.pkgName);
448+
}
449+
}
450+
451+
function updateResultCounts(result, backendCounts, frontendCounts) {
452+
const isFrontend = isFrontendRole(result.role);
453+
if (result.status === "fail-bundle" || result.status === "fail-load") {
454+
if (isFrontend) frontendCounts.fail++;
455+
else backendCounts.fail++;
456+
return;
457+
}
458+
459+
if (isFrontend) {
460+
frontendCounts[result.status] = (frontendCounts[result.status] ?? 0) + 1;
461+
return;
462+
}
463+
464+
backendCounts[result.status] = (backendCounts[result.status] ?? 0) + 1;
465+
}
466+
411467
function reportAndWrite(results, resultsFile) {
412468
console.log("\n========== Smoke Test Results ==========\n");
413469
const failedPlugins = [];
414470

415471
for (const r of results) {
416-
switch (r.status) {
417-
case "skip":
418-
console.log(` SKIP ${r.pkgName} (${r.role})`);
419-
break;
420-
case "pass":
421-
if (r.pluginId) {
422-
console.log(
423-
` PASS ${r.pkgName} → /api/${r.pluginId} (${r.http})`,
424-
);
425-
} else if (isFrontendRole(r.role)) {
426-
console.log(` PASS ${r.pkgName} (${r.role})`);
427-
}
428-
break;
429-
case "warn":
430-
console.log(
431-
` WARN ${r.pkgName} → /api/${r.pluginId} (404 — pluginId guess may be wrong)`,
432-
);
433-
break;
434-
case "fail-bundle":
435-
console.log(` FAIL ${r.pkgName} [bundle] ${r.detail}`);
436-
failedPlugins.push(r.pkgName);
437-
break;
438-
case "fail-load":
439-
console.log(` FAIL ${r.pkgName} [load] ${r.detail}`);
440-
failedPlugins.push(r.pkgName);
441-
break;
442-
default:
443-
console.log(` FAIL ${r.pkgName} ${r.error}`);
444-
failedPlugins.push(r.pkgName);
445-
}
472+
logResultAndCollectFailures(r, failedPlugins);
446473
}
447474

448475
const be = { pass: 0, warn: 0, skip: 0, fail: 0 };
449476
const fe = { pass: 0, fail: 0 };
450477
for (const r of results) {
451-
const isFe = isFrontendRole(r.role);
452-
if (r.status === "fail-bundle" || r.status === "fail-load") {
453-
if (isFe) fe.fail++;
454-
else be.fail++;
455-
} else if (isFe) {
456-
fe[r.status] = (fe[r.status] ?? 0) + 1;
457-
} else {
458-
be[r.status] = (be[r.status] ?? 0) + 1;
459-
}
478+
updateResultCounts(r, be, fe);
460479
}
461480
const total = results.length;
462481
const totalFail = be.fail + fe.fail;

0 commit comments

Comments
 (0)