From 44c782c1e23cf303e8423a7699ea1074cad1a1df Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Sun, 22 Mar 2026 12:06:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=81=E5=AE=9A=E7=BB=93=E6=9E=9C=E6=80=BB?= =?UTF-8?q?=E8=A7=88=E5=89=8D=E7=AB=AF=E6=8E=A5=E5=8F=A3=E5=A5=91=E7=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../preliminary-check-api-integration.test.js | 23 ++++++++++++++++++ .../tests/unit/project-overview-api.test.js | 24 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/ruoyi-ui/tests/unit/preliminary-check-api-integration.test.js b/ruoyi-ui/tests/unit/preliminary-check-api-integration.test.js index c65a6f5b..99effcad 100644 --- a/ruoyi-ui/tests/unit/preliminary-check-api-integration.test.js +++ b/ruoyi-ui/tests/unit/preliminary-check-api-integration.test.js @@ -10,6 +10,7 @@ const source = fs.readFileSync( [ "getOverviewDashboard", "getOverviewRiskPeople", + "getOverviewRiskModelCards", "loadOverviewData", "Promise.all", ].forEach((token) => assert(source.includes(token), token)); @@ -17,3 +18,25 @@ const source = fs.readFileSync( assert(!source.includes("getOverviewTopRiskPeople"), "页面不应再依赖TOP10接口"); assert(!source.includes("topRiskPeopleRes"), "页面不应再处理TOP10响应"); assert(!source.includes("topRiskPeopleData"), "页面不应再处理TOP10数据"); + +const loadOverviewDataBlock = source.match( + /const \[dashboardRes, riskPeopleRes, riskModelCardsRes\] = await Promise\.all\(\[([\s\S]*?)\]\);/m +); + +assert(loadOverviewDataBlock, "入口页应继续并发请求仪表盘、风险人员和模型卡片"); +[ + "getOverviewDashboard(this.projectId)", + "getOverviewRiskPeople(this.projectId)", + "getOverviewRiskModelCards(this.projectId)", +].forEach((token) => assert(loadOverviewDataBlock[0].includes(token), token)); + +[ + "createOverviewLoadedData", + "dashboardData", + "riskPeopleData", + "riskModelCardsData", +].forEach((token) => assert(source.includes(token), token)); + +["employeeResult", "resultTable", "topRiskList"].forEach((token) => + assert(!source.includes(token), `入口页不应感知或回退到旧/新底层数据源字段:${token}`) +); diff --git a/ruoyi-ui/tests/unit/project-overview-api.test.js b/ruoyi-ui/tests/unit/project-overview-api.test.js index a4ad33fd..52c0535c 100644 --- a/ruoyi-ui/tests/unit/project-overview-api.test.js +++ b/ruoyi-ui/tests/unit/project-overview-api.test.js @@ -10,11 +10,35 @@ const source = fs.readFileSync( [ "getOverviewDashboard", "getOverviewRiskPeople", + "getOverviewRiskModelCards", + "getOverviewRiskModelPeople", "/ccdi/project/overview/dashboard", "/ccdi/project/overview/risk-people", + "/ccdi/project/overview/risk-models/cards", + "/ccdi/project/overview/risk-models/people", ].forEach((token) => assert(source.includes(token), token)); [ "getOverviewTopRiskPeople", "/ccdi/project/overview/top-risk-people", ].forEach((token) => assert(!source.includes(token), token)); + +const riskModelPeopleFn = source.match( + /export function getOverviewRiskModelPeople\(params\) \{[\s\S]*?params:\s*\{([\s\S]*?)\}\s*\}\s*\)/m +); + +assert(riskModelPeopleFn, "应保留模型人员接口参数透传逻辑"); + +[ + "projectId: params.projectId", + "modelCodes: params.modelCodes", + "matchMode: params.matchMode", + "keyword: params.keyword", + "deptId: params.deptId", + "pageNum: params.pageNum", + "pageSize: params.pageSize", +].forEach((token) => assert(riskModelPeopleFn[0].includes(token), token)); + +["employeeResult", "resultTable", "overview/result"].forEach((token) => + assert(!source.includes(token), `前端 API 契约不应感知结果表实现:${token}`) +);