const assert = require("assert"); const fs = require("fs"); const path = require("path"); const sidebar = fs.readFileSync( path.resolve( __dirname, "../../src/views/ccdiProject/components/detail/ProjectAnalysisSidebar.vue" ), "utf8" ); const dialog = fs.readFileSync( path.resolve( __dirname, "../../src/views/ccdiProject/components/detail/ProjectAnalysisDialog.vue" ), "utf8" ); const entry = fs.readFileSync( path.resolve( __dirname, "../../src/views/ccdiProject/components/detail/PreliminaryCheck.vue" ), "utf8" ); [ "sidebar-profile", "sidebar-summary", "sidebar-hint", "sidebar-risk-badge", "人物档案", "模型摘要", "辅助提示", "命中模型数", "核心异常标签", "暂无异常标签", "formatRiskTag", "tag.ruleName", "justify-content: flex-start", "width: 100%", "sidebar-profile__meta", "sidebar-section__title", ].forEach((token) => assert(sidebar.includes(token), token)); assert(!sidebar.includes("当前命中模型"), "命中模型摘要应移除当前命中模型字段"); assert(!sidebar.includes("排查记录摘要"), "侧栏应移除排查记录摘要"); assert(!sidebar.includes("人员基础信息"), "侧栏主视觉不应继续停留在字段平铺式表单"); assert(!sidebar.includes("position: sticky"), "左侧整卡不应保持固定"); assert(!sidebar.includes("border: 1px solid #e2e8f0"), "左右区域合并后左侧不应保留独立卡片边框"); assert(!sidebar.includes("justify-content: space-between"), "不应继续以表单式左右对齐作为主体布局"); assert(!sidebar.includes("关系人画像"), "侧栏不应扩展到额外区块"); assert(!sidebar.includes("资产分布"), "侧栏不应扩展到额外区块"); [ "this.detailData && this.detailData.basicInfo", "...(this.modelSummary || {})", ].forEach((token) => assert(dialog.includes(token), token)); assert(entry.includes(':model-summary="projectAnalysisModelSummary"'), "入口页应继续透传模型摘要");