fix: align sentinel run row tags with check counts
This commit is contained in:
@@ -672,16 +672,18 @@ createApp({
|
||||
:key="run.id"
|
||||
class="run-row"
|
||||
:class="[severityClass(run), { selected: run.id === selectedRunId }]"
|
||||
:data-run-id="run.id"
|
||||
:data-run-error-count="runCheckErrorCount(run)"
|
||||
:data-run-warning-count="runCheckWarningCount(run)"
|
||||
:data-run-alert-count="runCheckAlertCount(run)"
|
||||
type="button"
|
||||
@click="selectRun(run)"
|
||||
>
|
||||
<span class="row-line">
|
||||
<span class="severity-line"><span class="severity-dot"></span><strong>{{ run.scenarioId || shortId(run.id) }}</strong></span>
|
||||
<span class="run-alert-tags">
|
||||
<span v-if="runCheckErrorCount(run) > 0" class="tag red" data-run-error-tag="true">错误 {{ runCheckErrorCount(run) }}</span>
|
||||
<span v-if="runCheckWarningCount(run) > 0" class="tag warning" data-run-warning-tag="true">告警 {{ runCheckWarningCount(run) }}</span>
|
||||
<span v-if="runCheckAlertCount(run) === 0" class="tag healthy">正常</span>
|
||||
</span>
|
||||
<span v-if="runCheckErrorCount(run) > 0" class="tag red" data-run-error-tag="true">错误 {{ runCheckErrorCount(run) }}</span>
|
||||
<span v-if="runCheckWarningCount(run) > 0" class="tag warning" data-run-warning-tag="true">告警 {{ runCheckWarningCount(run) }}</span>
|
||||
<span v-if="runCheckAlertCount(run) === 0" class="tag healthy">正常</span>
|
||||
</span>
|
||||
<span class="row-line muted">
|
||||
<span>{{ run.status || "-" }}</span>
|
||||
|
||||
@@ -2393,18 +2393,22 @@ const dom = await page.evaluate(async ({ expectedRoutePrefix, expectedSentinelId
|
||||
belowWorkspace: Boolean(workspaceRect && checksRect && checksRect.top >= workspaceRect.bottom - 2),
|
||||
fullWidth: Boolean(workspaceRect && checksRect && checksRect.width >= workspaceRect.width - 2),
|
||||
};
|
||||
const selectedRunRow = document.querySelector(".run-list .run-row.selected");
|
||||
const runListRowFor = (runId) => Array.from(document.querySelectorAll(".run-list .run-row"))
|
||||
.find((row) => row.getAttribute("data-run-id") === runId) || null;
|
||||
const selectedRunRow = runListRowFor(latestRunCounts.runId) || document.querySelector(".run-list .run-row.selected");
|
||||
const selectedRunTags = {
|
||||
error: numberValue(String(selectedRunRow?.querySelector("[data-run-error-tag='true']")?.textContent || "").match(/(\\d+)/u)?.[1]),
|
||||
warning: numberValue(String(selectedRunRow?.querySelector("[data-run-warning-tag='true']")?.textContent || "").match(/(\\d+)/u)?.[1]),
|
||||
errorVisible: Boolean(selectedRunRow?.querySelector("[data-run-error-tag='true']")),
|
||||
warningVisible: Boolean(selectedRunRow?.querySelector("[data-run-warning-tag='true']")),
|
||||
rowSelected: Boolean(selectedRunRow?.classList.contains("selected")),
|
||||
matchesRunDetail: false,
|
||||
};
|
||||
selectedRunTags.matchesRunDetail = selectedRunTags.error === latestDetailSummary.errorTypeCount
|
||||
&& selectedRunTags.warning === latestDetailSummary.warningTypeCount
|
||||
&& selectedRunTags.errorVisible === (latestDetailSummary.errorTypeCount > 0)
|
||||
&& selectedRunTags.warningVisible === (latestDetailSummary.warningTypeCount > 0);
|
||||
&& selectedRunTags.warningVisible === (latestDetailSummary.warningTypeCount > 0)
|
||||
&& selectedRunTags.rowSelected === true;
|
||||
checkScope.matchesLatestRun = checkScope.present === true
|
||||
&& checkScope.scope === "run"
|
||||
&& checkScope.runId === latestRunCounts.runId
|
||||
@@ -2638,12 +2642,15 @@ const runFilterProbe = await page.evaluate(async ({ expectedRoutePrefix }) => {
|
||||
alertSamples: sum(errorRows) + sum(warningRows),
|
||||
};
|
||||
};
|
||||
const runListRowFor = (runId) => Array.from(document.querySelectorAll(".run-list .run-row"))
|
||||
.find((row) => row.getAttribute("data-run-id") === runId) || null;
|
||||
const panelCounts = () => {
|
||||
const panel = document.querySelector("[data-monitor-checks='true']");
|
||||
const selectedRunRow = document.querySelector(".run-list .run-row.selected");
|
||||
const panelRunId = panel?.getAttribute("data-check-run-id") || null;
|
||||
const selectedRunRow = runListRowFor(panelRunId) || document.querySelector(".run-list .run-row.selected");
|
||||
return {
|
||||
present: Boolean(panel),
|
||||
runId: panel?.getAttribute("data-check-run-id") || null,
|
||||
runId: panelRunId,
|
||||
typeCount: numberValue(panel?.getAttribute("data-check-type-count")),
|
||||
errorTypeCount: numberValue(panel?.getAttribute("data-check-error-type-count")),
|
||||
warningTypeCount: numberValue(panel?.getAttribute("data-check-warning-type-count")),
|
||||
@@ -2655,6 +2662,7 @@ const runFilterProbe = await page.evaluate(async ({ expectedRoutePrefix }) => {
|
||||
visibleAlertSamples: numberValue(panel?.getAttribute("data-visible-check-alert-samples")),
|
||||
selectedRunErrorTag: numberValue(String(selectedRunRow?.querySelector("[data-run-error-tag='true']")?.textContent || "").match(/(\\d+)/u)?.[1]),
|
||||
selectedRunWarningTag: numberValue(String(selectedRunRow?.querySelector("[data-run-warning-tag='true']")?.textContent || "").match(/(\\d+)/u)?.[1]),
|
||||
selectedRunRowSelected: Boolean(selectedRunRow?.classList.contains("selected")),
|
||||
};
|
||||
};
|
||||
const waitForRun = async (runId) => {
|
||||
@@ -2693,7 +2701,8 @@ const runFilterProbe = await page.evaluate(async ({ expectedRoutePrefix }) => {
|
||||
&& observed.visibleRowCount === expected.alertTypeCount
|
||||
&& observed.visibleAlertSamples === expected.alertSamples
|
||||
&& observed.selectedRunErrorTag === expected.errorTypeCount
|
||||
&& observed.selectedRunWarningTag === expected.warningTypeCount;
|
||||
&& observed.selectedRunWarningTag === expected.warningTypeCount
|
||||
&& observed.selectedRunRowSelected === true;
|
||||
return {
|
||||
ok: panelReady === true && matchesRunDetail === true,
|
||||
requestedRunId,
|
||||
|
||||
Reference in New Issue
Block a user