From 6764a14555e721504f079dc9bbc2b18d2eccd427 Mon Sep 17 00:00:00 2001 From: Tony Date: Sat, 12 Jul 2025 03:08:28 +0800 Subject: [PATCH] fix(test): improve error handling and label management in route testing --- scripts/workflow/test-route/test.mjs | 29 +++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/scripts/workflow/test-route/test.mjs b/scripts/workflow/test-route/test.mjs index 8e8cf7a947..23de7b6e63 100644 --- a/scripts/workflow/test-route/test.mjs +++ b/scripts/workflow/test-route/test.mjs @@ -31,7 +31,9 @@ export default async function test({ github, context, core }, baseUrl, routes, n successCount++; detail = jsBeautify.html(body.replaceAll(/\s+(\n|$)/g, '\n'), { indent_size: 2 }); } else { - failCount++; + if (body && !body.includes('ConfigNotFoundError')) { + failCount++; + } detail = `HTTPError: Response code ${res.status} (${res.statusText})`; const errInfoList = body && body.match(/(?<=

)(.+?)(?=<\/p>)/gs); if (errInfoList) { @@ -75,6 +77,31 @@ ${detail.slice(0, 65300 - routeFeedback.length)} if (process.env.PULL_REQUEST) { const resultLabel = failCount === links.length || successCount <= failCount ? routeTestFailed : readyToReview; + + if (resultLabel === routeTestFailed) { + const { data: issue } = await github.rest.issues + .get({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: number, + }) + .catch((error) => { + core.warning(error); + }); + if (issue.labels.some((l) => l.name === readyToReview)) { + await github.rest.issues + .removeLabel({ + issue_number: number, + owner: context.repo.owner, + repo: context.repo.repo, + name: readyToReview, + }) + .catch((error) => { + core.warning(error); + }); + } + } + await github.rest.issues .addLabels({ issue_number: number,