fix: render patch panel wiring as long table

This commit is contained in:
Code Queue Review
2026-05-23 08:48:46 +00:00
parent 7f22016c90
commit c18c141c23
10 changed files with 334 additions and 71 deletions
+20 -8
View File
@@ -2053,22 +2053,34 @@ function assertDevCloudWorkbenchDomObservations(dom, label) {
assert.equal(dom.codeAgentPostGuard.blockedPath, "/v1/agent/chat", `${label}.codeAgentPostGuard.blockedPath`);
assert.equal(dom.codeAgentPostGuard.attemptedCount, 0, `${label}.codeAgentPostGuard.attemptedCount`);
}
assertStringArray(dom.wiringHeaders, `${label}.wiringHeaders`, { minLength: 8 });
for (const column of ["源设备", "源端口", "接线盘", "目标设备", "目标端口", "状态", "证据来源", "trace/evidence"]) {
assert.ok(dom.wiringHeaders.includes(column), `${label}.wiringHeaders missing ${column}`);
assert.equal(dom.wiringLayout, "two-column-long-table", `${label}.wiringLayout`);
assertStringArray(dom.wiringHeaderDevices, `${label}.wiringHeaderDevices`, { minLength: 2 });
assert.equal(dom.wiringHeaderDevices.includes("res_boxsimu_1"), true, `${label}.wiringHeaderDevices missing res_boxsimu_1`);
assert.equal(dom.wiringHeaderDevices.includes("res_boxsimu_2"), true, `${label}.wiringHeaderDevices missing res_boxsimu_2`);
assert.equal(dom.wiringHeaderCount, 2, `${label}.wiringHeaderCount`);
assertStringArray(dom.legacyWiringHeaders, `${label}.legacyWiringHeaders`);
assert.equal(dom.legacyWiringHeaders.length, 0, `${label}.legacyWiringHeaders must not restore legacy wide columns`);
assertArray(dom.wiringBodyCellCounts, `${label}.wiringBodyCellCounts`);
for (const count of dom.wiringBodyCellCounts) {
assert.equal(count, 2, `${label}.wiringBodyCellCounts must stay two-column`);
}
assertArray(dom.m3WiringRows, `${label}.m3WiringRows`);
assert.ok(
dom.m3WiringRows.some((row) =>
Array.isArray(row) &&
row.includes("res_boxsimu_1") &&
row.includes("DO1") &&
row.includes("hwlab-patch-panel") &&
row.includes("res_boxsimu_2") &&
row.includes("DI1")
row.length === 2 &&
row[0].includes("DO1") &&
row[0].includes("hwlab-patch-panel") &&
row[1].includes("DI1") &&
row[1].includes("证据来源") &&
row[1].includes("轨迹/证据")
),
`${label}.m3WiringRows missing required M3 route`
);
assert.match(dom.wiringSummaryText, /hwlab-patch-panel/u, `${label}.wiringSummaryText missing patch-panel`);
assert.match(dom.wiringSummaryText, /状态/u, `${label}.wiringSummaryText missing status`);
assert.match(dom.wiringSummaryText, /证据来源/u, `${label}.wiringSummaryText missing evidence source`);
assert.match(dom.wiringSummaryText, /轨迹\/证据/u, `${label}.wiringSummaryText missing trace/evidence`);
assertObject(dom.coreControlsVisible, `${label}.coreControlsVisible`);
for (const control of ["commandInput", "commandSend", "agentChatStatus", "conversationList", "hardwareList", "wiringTab", "recordsTab"]) {
assert.equal(dom.coreControlsVisible[control], true, `${label}.coreControlsVisible.${control}`);