Files
ccdi/ruoyi-ui/tests/unit/project-list-reanalyze-flow.test.js

64 lines
2.1 KiB
JavaScript

const assert = require("assert");
const fs = require("fs");
const path = require("path");
const pagePath = path.resolve(__dirname, "../../src/views/ccdiProject/index.vue");
const tablePath = path.resolve(__dirname, "../../src/views/ccdiProject/components/ProjectTable.vue");
const pageSource = fs.readFileSync(pagePath, "utf8");
const tableSource = fs.readFileSync(tablePath, "utf8");
assert(
pageSource.includes("rebuildProjectTags({ projectId: row.projectId })"),
"重新分析应调用真实重打标接口"
);
assert(
pageSource.includes("await this.$modal.confirm("),
"重新分析前应先弹出确认框"
);
assert(
pageSource.includes("确认对项目“${row.projectName}”重新分析吗?重新分析将重新计算项目标签。"),
"确认弹窗文案应覆盖项目名称和重新计算标签提醒"
);
assert(
pageSource.includes('confirmError === "cancel"') ||
pageSource.includes("confirmError === 'cancel'"),
"取消确认时应直接结束,不继续提交"
);
assert(
/await this\.\$modal\.confirm\([\s\S]*?this\.\$set\(this\.reAnalyzeLoadingMap,\s*projectKey,\s*true\)/.test(pageSource),
"只有确认后才允许进入按钮 loading"
);
assert(
pageSource.includes('this.$modal.msgSuccess("已开始重新分析")') ||
pageSource.includes("this.$modal.msgSuccess('已开始重新分析')"),
"重新分析成功提示应统一为已开始重新分析"
);
assert(
/finally\s*\([\s\S]*?this\.getList\(/.test(pageSource) || pageSource.includes("this.getList()"),
"重新分析成功后应刷新列表"
);
assert(
tableSource.includes(':loading="reAnalyzeLoadingMap[String(scope.row.projectId)]"') ||
tableSource.includes(':loading="reAnalyzeLoadingMap[scope.row.projectId]"'),
"表格中的重新分析按钮应支持提交态"
);
assert(
pageSource.includes("重新分析失败,请稍后重试"),
"重新分析失败时应有统一兜底提示"
);
assert(
pageSource.includes("error.message"),
"有明确业务异常时应优先透传后端返回文案"
);
console.log("project-list-reanalyze-flow test passed");