From 6d015c5b6b635e27f7fd1a5b6455451b6c6bf541 Mon Sep 17 00:00:00 2001 From: OoO Date: Tue, 5 May 2026 22:08:44 +0800 Subject: [PATCH] test(observability): assert design system markers --- docs/guides/observability_ui_governance.md | 1 + scripts/check_observability_pages.py | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/guides/observability_ui_governance.md b/docs/guides/observability_ui_governance.md index 7e5827f..f69515f 100644 --- a/docs/guides/observability_ui_governance.md +++ b/docs/guides/observability_ui_governance.md @@ -83,6 +83,7 @@ python3 scripts/check_observability_pages.py - 不得出現 framework / database exception 文案。 - 每頁必須包含自己的核心標題與內容 marker。 +- 每頁必須載入 `momo-observability-mode`、`observability-system.css` 與 topbar AI 觀測台 indicator。 - HTML 不能小到像空殼頁或錯誤 fallback。 ```bash diff --git a/scripts/check_observability_pages.py b/scripts/check_observability_pages.py index 76f6738..f97d3fc 100644 --- a/scripts/check_observability_pages.py +++ b/scripts/check_observability_pages.py @@ -42,6 +42,13 @@ EXPECTED_MARKERS = { MIN_HTML_BYTES = 2500 +GLOBAL_REQUIRED_MARKERS = [ + "momo-observability-mode", + "observability-system.css", + "AI 觀測台", + "momo-obs-link", +] + ERROR_NEEDLES = [ "Traceback", "UndefinedError", @@ -89,8 +96,12 @@ def main() -> int: marker for marker in EXPECTED_MARKERS.get(path, []) if marker not in html ] + missing_global_markers = [ + marker for marker in GLOBAL_REQUIRED_MARKERS + if marker not in html + ] too_small = len(html.encode("utf-8")) < MIN_HTML_BYTES - if status != 200 or found or missing_markers or too_small: + if status != 200 or found or missing_markers or missing_global_markers or too_small: issues = [] if status != 200: issues.append("bad_status") @@ -98,6 +109,8 @@ def main() -> int: issues.extend(found) if missing_markers: issues.append(f"missing_markers={missing_markers}") + if missing_global_markers: + issues.append(f"missing_global_markers={missing_global_markers}") if too_small: issues.append(f"html_too_small={len(html.encode('utf-8'))}B") print(f"- {label}: HTTP {status}, issues={issues}, FAIL")