test_governance_metrics_frontend_contract.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from pathlib import Path
  2. ROOT = Path(__file__).resolve().parents[2]
  3. def test_governance_metrics_dashboard_exposes_traceable_read_only_contract():
  4. page = (
  5. ROOT
  6. / "frontend/src/views/dataGovernance/development/governanceMetrics.vue"
  7. ).read_text(encoding="utf-8")
  8. model = (
  9. ROOT
  10. / "frontend/src/views/dataGovernance/development/"
  11. "governanceMetricsModel.js"
  12. ).read_text(encoding="utf-8")
  13. api = (ROOT / "frontend/src/api/dataDevelopment.js").read_text(
  14. encoding="utf-8"
  15. )
  16. routes = (ROOT / "frontend/src/router/routes.js").read_text(
  17. encoding="utf-8"
  18. )
  19. center = (
  20. ROOT / "frontend/src/views/dataGovernance/development/index.vue"
  21. ).read_text(encoding="utf-8")
  22. for text in (
  23. "治理运营指标",
  24. "台账完整率",
  25. "责任覆盖率",
  26. "实体映射率",
  27. "问题闭环率",
  28. "问题复发率",
  29. "实时计算,非手工填报",
  30. "按服务端业务域授权过滤",
  31. "分子",
  32. "分母",
  33. "查看明细",
  34. "暂无数据",
  35. ):
  36. assert text in page or text in model
  37. for formula_fragment in (
  38. "名称、位置、组织、责任人",
  39. "已明确责任人",
  40. "有效且未回滚实体合并",
  41. "已关闭质量问题",
  42. "发生次数大于一次",
  43. ):
  44. assert formula_fragment in page or formula_fragment in model
  45. for forbidden in (
  46. "item.attributes",
  47. "item.evidence",
  48. "item.message",
  49. "item.config",
  50. "item.permission_scope",
  51. ):
  52. assert forbidden not in page
  53. assert "this.$snackbar.error" in page
  54. assert "this.$message" not in page
  55. assert "getGovernanceMetricSummary" in api
  56. assert "getGovernanceMetricDetails" in api
  57. assert "/data-governance/development/governance-metrics" in routes
  58. assert "governanceMetrics" in routes
  59. assert "治理运营指标" in center