fix: [code-1991]: fix status icon for check section (#2123)

This commit is contained in:
Calvin Lee 2024-06-18 23:51:45 +00:00 committed by Harness
parent 98bac50f64
commit a1b9512c59
2 changed files with 57 additions and 14 deletions

View File

@ -66,7 +66,17 @@ const ChecksSection = (props: ChecksSectionProps) => {
function generateStatusSummary(checks: TypeCheckData[]) { function generateStatusSummary(checks: TypeCheckData[]) {
// Initialize counts for each status // Initialize counts for each status
const statusCounts = { failed: 0, pending: 0, running: 0, succeeded: 0, total: checks?.length || 0 } const statusCounts = {
failedReq: 0,
pendingReq: 0,
runningReq: 0,
successReq: 0,
failed: 0,
pending: 0,
running: 0,
succeeded: 0,
total: checks?.length || 0
}
if (isEmpty(checks)) { if (isEmpty(checks)) {
return { message: '', summary: statusCounts } return { message: '', summary: statusCounts }
} }
@ -74,30 +84,51 @@ const ChecksSection = (props: ChecksSectionProps) => {
// Count occurrences of each status // Count occurrences of each status
checks.forEach(check => { checks.forEach(check => {
const status = check.check.status const status = check.check.status
const required = check.required
if (status === CheckStatus.FAILURE || status === CheckStatus.ERROR) { if (status === CheckStatus.FAILURE || status === CheckStatus.ERROR) {
statusCounts.failed += 1 if (required) {
statusCounts.failedReq += 1
} else {
statusCounts.failed += 1
}
} else if (status === CheckStatus.PENDING) { } else if (status === CheckStatus.PENDING) {
statusCounts.pending += 1 if (required) {
statusCounts.pendingReq += 1
} else {
statusCounts.pending += 1
}
} else if (status === CheckStatus.RUNNING) { } else if (status === CheckStatus.RUNNING) {
statusCounts.running += 1 if (required) {
statusCounts.runningReq += 1
} else {
statusCounts.running += 1
}
} else if (status === CheckStatus.SUCCESS) { } else if (status === CheckStatus.SUCCESS) {
statusCounts.succeeded += 1 if (required) {
statusCounts.successReq += 1
} else {
statusCounts.succeeded += 1
}
} }
}) })
// Format the summary string // Format the summary string
const summaryParts = [] const summaryParts = []
if (statusCounts.failed > 0) { if (statusCounts.failed > 0 || statusCounts.failedReq) {
summaryParts.push(`${statusCounts.failed} failed`) const num = statusCounts.failed + statusCounts.failedReq
summaryParts.push(`${num} failed`)
} }
if (statusCounts.pending > 0) { if (statusCounts.pending > 0 || statusCounts.pendingReq > 0) {
summaryParts.push(`${statusCounts.pending} pending`) const num = statusCounts.pending + statusCounts.pendingReq
summaryParts.push(`${num} pending`)
} }
if (statusCounts.running > 0) { if (statusCounts.running > 0 || statusCounts.runningReq) {
summaryParts.push(`${statusCounts.running} running`) const num = statusCounts.running + statusCounts.runningReq
summaryParts.push(`${num} running`)
} }
if (statusCounts.succeeded > 0) { if (statusCounts.succeeded > 0 || statusCounts.successReq) {
summaryParts.push(`${statusCounts.succeeded} succeeded`) const num = statusCounts.succeeded + statusCounts.successReq
summaryParts.push(`${num} succeeded`)
} }
return { message: summaryParts.join(', '), summary: statusCounts } return { message: summaryParts.join(', '), summary: statusCounts }

View File

@ -29,6 +29,10 @@ const StatusCircle = ({
summary: { summary: {
message: string message: string
summary: { summary: {
failedReq: number
pendingReq: number
runningReq: number
successReq: number
failed: number failed: number
pending: number pending: number
running: number running: number
@ -40,7 +44,15 @@ const StatusCircle = ({
const { getString } = useStrings() const { getString } = useStrings()
const data = summary.summary const data = summary.summary
const status = const status =
data.failed > 0 data.failedReq > 0
? ExecutionState.FAILURE
: data.pendingReq > 0
? ExecutionState.PENDING
: data.runningReq > 0
? ExecutionState.RUNNING
: data.successReq > 0
? ExecutionState.SUCCESS
: data.failed > 0
? ExecutionState.FAILURE ? ExecutionState.FAILURE
: data.pending > 0 : data.pending > 0
? ExecutionState.PENDING ? ExecutionState.PENDING