from pathlib import Path ROOT = Path(__file__).resolve().parents[2] def test_semantic_governance_workbench_exposes_cross_domain_release_chain(): page = ( ROOT / "frontend/src/views/dataGovernance/dataStandard/" "semanticGovernance.vue" ).read_text(encoding="utf-8") api = (ROOT / "frontend/src/api/dataDevelopment.js").read_text( encoding="utf-8" ) routes = (ROOT / "frontend/src/router/routes.js").read_text( encoding="utf-8" ) standard_center = ( ROOT / "frontend/src/views/dataGovernance/dataStandard/index.vue" ).read_text(encoding="utf-8") for text in ( "通用术语与标准", "业务术语", "通用代码集", "指标口径", "物理字段映射", "草稿", "审核中", "已批准", "已发布", "提交审核", "审批通过", "发布", "回滚", "JSON", "RDF", "本平台只治理指标定义,不执行 BI 计算", ): assert text in page for function_name in ( "getSemanticAssets", "createSemanticAsset", "submitSemanticAsset", "reviewSemanticAsset", "publishSemanticAsset", "rollbackSemanticAsset", "getSemanticFieldMappings", "createSemanticFieldMapping", "exportSemanticAssets", ): assert function_name in api assert "/data-governance/data-standard/semantic-governance" in routes assert "semanticGovernance" in routes assert "通用术语与标准" in standard_center assert "this.$snackbar.error" in page assert "this.$message" not in page