from __future__ import annotations from pathlib import Path ROOT = Path(__file__).resolve().parents[2] VIEW = ROOT / "frontend/src/views/knowledgeBaseProduct/index.vue" API = ROOT / "frontend/src/api/governanceKnowledge.js" def test_device_knowledge_workbench_exposes_search_refusal_scope_and_audit(): view = VIEW.read_text(encoding="utf-8") api = API.read_text(encoding="utf-8") for prompt in ("设备名称", "平台 UID", "源 ID", "位置", "责任人", "故障"): assert prompt in view for explicit_state in ( "回答模型暂不可用", "当前证据不足", "未生成推测性答案", ): assert explicit_state in view assert "数据源授权范围" in view assert "空范围仅管理员可见" in view assert "查询审计" in view assert "原始问题不会写入审计" in view assert '@change="resetResult"' in view assert "resetResult ()" in view assert "$snackbar" in view assert "$message" not in view for endpoint in ( "/knowledge/admin/device-sources", "/knowledge/admin/query-audits", ): assert endpoint in api