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('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");