修复项: - fix(db): 迁移 149 — 修复 Admin 角色权限绑定被迁移链破坏 (FE-C1) - fix(health): 4 个 handler 添加空名称验证 — Doctor/Article/AlertRule/Tag (API-C1~C4) - fix(health): Stats 仪表盘 new_this_week 查询修复 — SeaORM date_trunc bug (FE-C2) - fix(server): 添加安全响应头 — X-Frame-Options/CSP/XSS-Protection/Referrer-Policy (SEC-H1) - fix(mp): 预约创建契约修复 — notes/reason 字段映射 + 移除 schedule_id (MP-H1) - fix(mp): 咨询会话 subject/last_message 字段改为可选 (MP-H3) - fix(ai): AiConfig Default derive 替代手写 impl (clippy) 测试报告: - 8 维度端到端测试全部完成 (后端 87 用例 / 前端 30 页面 / 小程序 80+ API / 安全 20 项 / 性能 20 端点) - 多角色 7 角色 49 检查 100% 通过 - 综合测试报告 + 专家评估报告
1256 lines
26 KiB
JSON
1256 lines
26 KiB
JSON
{
|
|
"timestamp": "2026-05-18T04:15:39.065081",
|
|
"total": 156,
|
|
"passed": 129,
|
|
"failed": 27,
|
|
"results": [
|
|
{
|
|
"role": "R01",
|
|
"chain": "A",
|
|
"test_id": "1",
|
|
"description": "Create patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "A",
|
|
"test_id": "2",
|
|
"description": "Patient detail",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "A",
|
|
"test_id": "3",
|
|
"description": "Create tag",
|
|
"passed": false,
|
|
"detail": "status=500, msg=内部错误"
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "A",
|
|
"test_id": "3b",
|
|
"description": "Assign tag to patient",
|
|
"passed": false,
|
|
"detail": "status=400, msg=Failed to parse the request body as JSON: EOF while parsing a value at line 1 column 0"
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "A",
|
|
"test_id": "4",
|
|
"description": "Devices list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "A",
|
|
"test_id": "5",
|
|
"description": "Consents list (via patient)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "A",
|
|
"test_id": "6",
|
|
"description": "Search patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "B",
|
|
"test_id": "1",
|
|
"description": "Create follow-up task",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "B",
|
|
"test_id": "2",
|
|
"description": "Follow-up list (pending)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "B",
|
|
"test_id": "3",
|
|
"description": "Follow-up templates",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "B",
|
|
"test_id": "4",
|
|
"description": "Action inbox",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "C",
|
|
"test_id": "1",
|
|
"description": "Consultation sessions list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "C",
|
|
"test_id": "2",
|
|
"description": "Doctor dashboard",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "D",
|
|
"test_id": "1",
|
|
"description": "Critical value thresholds",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "D",
|
|
"test_id": "2",
|
|
"description": "Alerts list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "D",
|
|
"test_id": "3",
|
|
"description": "Alert rules",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "D",
|
|
"test_id": "4",
|
|
"description": "Critical alerts",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "D",
|
|
"test_id": "5",
|
|
"description": "BLE gateways",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "E",
|
|
"test_id": "1",
|
|
"description": "AI prompts",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "E",
|
|
"test_id": "2",
|
|
"description": "AI suggestions",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "E",
|
|
"test_id": "3",
|
|
"description": "AI chat sessions",
|
|
"passed": false,
|
|
"detail": "status=404, msg="
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "F",
|
|
"test_id": "1",
|
|
"description": "Create article",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "F",
|
|
"test_id": "2",
|
|
"description": "Edit article",
|
|
"passed": false,
|
|
"detail": "status=422, msg=Failed to deserialize the JSON body into the target type: missing field `version` at line 1 column 73"
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "F",
|
|
"test_id": "3a",
|
|
"description": "Submit article",
|
|
"passed": false,
|
|
"detail": "status=400, msg=Failed to parse the request body as JSON: EOF while parsing a value at line 1 column 0"
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "F",
|
|
"test_id": "3b",
|
|
"description": "Approve article",
|
|
"passed": false,
|
|
"detail": "status=400, msg=Failed to parse the request body as JSON: EOF while parsing a value at line 1 column 0"
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "F",
|
|
"test_id": "4",
|
|
"description": "Unpublish article",
|
|
"passed": false,
|
|
"detail": "status=400, msg=Failed to parse the request body as JSON: EOF while parsing a value at line 1 column 0"
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "G",
|
|
"test_id": "1",
|
|
"description": "Points rules",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "G",
|
|
"test_id": "2",
|
|
"description": "Points products",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "G",
|
|
"test_id": "3",
|
|
"description": "Points orders",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "H",
|
|
"test_id": "1",
|
|
"description": "Create offline event",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "H",
|
|
"test_id": "2",
|
|
"description": "List offline events",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "1",
|
|
"description": "Users list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "2",
|
|
"description": "Roles list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "3",
|
|
"description": "Organizations",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "4",
|
|
"description": "Statistics dashboard",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "5",
|
|
"description": "Workflow definitions",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "6",
|
|
"description": "Messages",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "7",
|
|
"description": "Settings",
|
|
"passed": false,
|
|
"detail": "status=404, msg=资源未找到: 设置 'general' 在 'tenant' 作用域下不存在"
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "8",
|
|
"description": "Plugins",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R01",
|
|
"chain": "I",
|
|
"test_id": "9",
|
|
"description": "OAuth clients",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "A",
|
|
"test_id": "1",
|
|
"description": "Patient list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "A",
|
|
"test_id": "2",
|
|
"description": "Patient detail",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "A",
|
|
"test_id": "3",
|
|
"description": "Create patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "A",
|
|
"test_id": "4",
|
|
"description": "Doctor list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "A",
|
|
"test_id": "5",
|
|
"description": "Patient diagnoses",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "A",
|
|
"test_id": "6",
|
|
"description": "Consents list (via patient)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "B",
|
|
"test_id": "1",
|
|
"description": "Create follow-up task",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "B",
|
|
"test_id": "2",
|
|
"description": "Follow-up list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "B",
|
|
"test_id": "3",
|
|
"description": "Follow-up templates",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "B",
|
|
"test_id": "4",
|
|
"description": "Action inbox",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "C",
|
|
"test_id": "1",
|
|
"description": "Consultation sessions list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "C",
|
|
"test_id": "2",
|
|
"description": "Consultation messages",
|
|
"passed": false,
|
|
"detail": "status=405, msg="
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "D",
|
|
"test_id": "1",
|
|
"description": "Alerts list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "D",
|
|
"test_id": "2",
|
|
"description": "Alert rules",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "D",
|
|
"test_id": "3",
|
|
"description": "Critical alerts",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "E",
|
|
"test_id": "1",
|
|
"description": "AI prompts",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "E",
|
|
"test_id": "2",
|
|
"description": "AI suggestions",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "E",
|
|
"test_id": "3",
|
|
"description": "Messages",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "P",
|
|
"test_id": "1",
|
|
"description": "No user management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "P",
|
|
"test_id": "2",
|
|
"description": "No role management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "P",
|
|
"test_id": "3",
|
|
"description": "No points rules",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "P",
|
|
"test_id": "4",
|
|
"description": "No article management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "P",
|
|
"test_id": "5",
|
|
"description": "No system settings",
|
|
"passed": false,
|
|
"detail": "expected=403, got=404, msg="
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "P",
|
|
"test_id": "6",
|
|
"description": "No BLE gateways",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R02",
|
|
"chain": "P",
|
|
"test_id": "7",
|
|
"description": "No tag management",
|
|
"passed": false,
|
|
"detail": "expected=403, got=200, msg=None"
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "A",
|
|
"test_id": "1",
|
|
"description": "Patient list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "A",
|
|
"test_id": "2",
|
|
"description": "Patient detail",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "A",
|
|
"test_id": "3",
|
|
"description": "Create patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "A",
|
|
"test_id": "4",
|
|
"description": "Daily monitoring",
|
|
"passed": false,
|
|
"detail": "status=405, msg="
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "B",
|
|
"test_id": "1",
|
|
"description": "Follow-up tasks list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "B",
|
|
"test_id": "2",
|
|
"description": "Create follow-up task",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "B",
|
|
"test_id": "3",
|
|
"description": "Update follow-up task",
|
|
"passed": false,
|
|
"detail": "status=422, msg=Failed to deserialize the JSON body into the target type: missing field `version` at line 1 column 25"
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "B",
|
|
"test_id": "4",
|
|
"description": "Follow-up records",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "C",
|
|
"test_id": "1",
|
|
"description": "Consultation sessions (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "C",
|
|
"test_id": "2",
|
|
"description": "Consultation messages (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "D",
|
|
"test_id": "1",
|
|
"description": "Alerts list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "D",
|
|
"test_id": "2",
|
|
"description": "Alert detail (if any)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "E",
|
|
"test_id": "1",
|
|
"description": "Consents list (via patient)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "E",
|
|
"test_id": "2",
|
|
"description": "Create consent",
|
|
"passed": false,
|
|
"detail": "status=400, msg=验证失败: consent_type 必须为以下之一: data_processing, health_data_collection, research_use, third_party_share, genetic_testing, telemedicine"
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "F",
|
|
"test_id": "1",
|
|
"description": "Action inbox list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "F",
|
|
"test_id": "2",
|
|
"description": "Action inbox stats",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "8.1",
|
|
"test_id": "",
|
|
"description": "Messages",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "P",
|
|
"test_id": "1",
|
|
"description": "No doctor management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "P",
|
|
"test_id": "2",
|
|
"description": "No tag management",
|
|
"passed": false,
|
|
"detail": "expected=403, got=200, msg=None"
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "P",
|
|
"test_id": "3",
|
|
"description": "No points rules",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "P",
|
|
"test_id": "4",
|
|
"description": "No article management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "P",
|
|
"test_id": "5",
|
|
"description": "No AI analysis",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "P",
|
|
"test_id": "6",
|
|
"description": "No follow-up templates",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R03",
|
|
"chain": "P",
|
|
"test_id": "7",
|
|
"description": "No user management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "A",
|
|
"test_id": "1",
|
|
"description": "Create tag",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "A",
|
|
"test_id": "2",
|
|
"description": "Patient list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "A",
|
|
"test_id": "3",
|
|
"description": "Create patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "A",
|
|
"test_id": "4",
|
|
"description": "Doctor list (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "B",
|
|
"test_id": "1",
|
|
"description": "Create follow-up task",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "B",
|
|
"test_id": "2",
|
|
"description": "Follow-up list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "B",
|
|
"test_id": "3",
|
|
"description": "Follow-up templates",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "B",
|
|
"test_id": "4",
|
|
"description": "Action inbox",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "B",
|
|
"test_id": "5",
|
|
"description": "Team action inbox",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "C",
|
|
"test_id": "1",
|
|
"description": "Consultation sessions list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "D",
|
|
"test_id": "1",
|
|
"description": "Alerts list",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "D",
|
|
"test_id": "2",
|
|
"description": "Alert rules",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "D",
|
|
"test_id": "3",
|
|
"description": "Critical value thresholds",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "D",
|
|
"test_id": "4",
|
|
"description": "Devices (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "D",
|
|
"test_id": "5",
|
|
"description": "Daily monitoring",
|
|
"passed": false,
|
|
"detail": "status=405, msg="
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "E",
|
|
"test_id": "1",
|
|
"description": "AI prompts (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "E",
|
|
"test_id": "2",
|
|
"description": "AI suggestions",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "F",
|
|
"test_id": "1",
|
|
"description": "Consents list (via patient)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "F",
|
|
"test_id": "2",
|
|
"description": "Patient diagnoses",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "8.1",
|
|
"test_id": "",
|
|
"description": "Messages",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "9.1",
|
|
"test_id": "",
|
|
"description": "Workflow definitions",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "P",
|
|
"test_id": "1",
|
|
"description": "No user management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "P",
|
|
"test_id": "2",
|
|
"description": "No points management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "P",
|
|
"test_id": "3",
|
|
"description": "No article management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "P",
|
|
"test_id": "4",
|
|
"description": "No system settings",
|
|
"passed": false,
|
|
"detail": "expected=403, got=404, msg="
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "P",
|
|
"test_id": "5",
|
|
"description": "No plugin management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R04",
|
|
"chain": "P",
|
|
"test_id": "6",
|
|
"description": "No BLE gateways",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "A",
|
|
"test_id": "1",
|
|
"description": "Create tag",
|
|
"passed": false,
|
|
"detail": "status=403, msg=禁止访问: 权限不足"
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "A",
|
|
"test_id": "2",
|
|
"description": "Patient list (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "A",
|
|
"test_id": "3",
|
|
"description": "Search patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "B",
|
|
"test_id": "1",
|
|
"description": "Create article",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "B",
|
|
"test_id": "2",
|
|
"description": "Edit article",
|
|
"passed": false,
|
|
"detail": "status=422, msg=Failed to deserialize the JSON body into the target type: missing field `version` at line 1 column 64"
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "B",
|
|
"test_id": "3",
|
|
"description": "Submit article",
|
|
"passed": false,
|
|
"detail": "status=400, msg=Failed to parse the request body as JSON: EOF while parsing a value at line 1 column 0"
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "B",
|
|
"test_id": "4",
|
|
"description": "Approve article",
|
|
"passed": false,
|
|
"detail": "status=400, msg=Failed to parse the request body as JSON: EOF while parsing a value at line 1 column 0"
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "C",
|
|
"test_id": "1",
|
|
"description": "Points rules",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "C",
|
|
"test_id": "2",
|
|
"description": "Create points product",
|
|
"passed": false,
|
|
"detail": "status=422, msg=Failed to deserialize the JSON body into the target type: missing field `points_cost` at line 1 column 92"
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "C",
|
|
"test_id": "3",
|
|
"description": "Points orders",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "D",
|
|
"test_id": "1",
|
|
"description": "Create event",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "D",
|
|
"test_id": "2",
|
|
"description": "List events",
|
|
"passed": false,
|
|
"detail": "status=404, msg=资源未找到: 当前用户未关联患者档案"
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "E",
|
|
"test_id": "1",
|
|
"description": "Devices (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "E",
|
|
"test_id": "2",
|
|
"description": "Alerts (read)",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "F",
|
|
"test_id": "1",
|
|
"description": "AI suggestions (read)",
|
|
"passed": false,
|
|
"detail": "status=403, msg=禁止访问: 权限不足"
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "8.1",
|
|
"test_id": "",
|
|
"description": "Messages",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "1",
|
|
"description": "No user management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "2",
|
|
"description": "No doctor management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "3",
|
|
"description": "No follow-up management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "4",
|
|
"description": "No consultation management",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "5",
|
|
"description": "No diagnoses",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "6",
|
|
"description": "No action inbox",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "7",
|
|
"description": "No consents",
|
|
"passed": false,
|
|
"detail": "expected=403, got=405, msg="
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "8",
|
|
"description": "No AI analysis",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "R05",
|
|
"chain": "P",
|
|
"test_id": "9",
|
|
"description": "No system settings",
|
|
"passed": false,
|
|
"detail": "expected=403, got=404, msg="
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "1",
|
|
"description": "Doctor sees admin-created patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "2",
|
|
"description": "Nurse sees admin-created patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "3",
|
|
"description": "HM sees admin-created patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "4",
|
|
"description": "Operator sees admin-created patient",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "5",
|
|
"description": "Nurse sees follow-up tasks (incl. doctor-created)",
|
|
"passed": true,
|
|
"detail": "total=7"
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "6",
|
|
"description": "Doctor can list tags",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "7",
|
|
"description": "HM can list tags",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "8",
|
|
"description": "Operator can list tags",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "9",
|
|
"description": "Doctor can view alerts",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "10",
|
|
"description": "Nurse can view alerts",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "11",
|
|
"description": "HM can view alerts",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "12",
|
|
"description": "Operator can manage articles",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "13",
|
|
"description": "Admin can see operator articles",
|
|
"passed": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "14",
|
|
"description": "Operator sees offline events",
|
|
"passed": false,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"role": "XROLE",
|
|
"chain": "X",
|
|
"test_id": "15",
|
|
"description": "Admin sees offline events",
|
|
"passed": true,
|
|
"detail": ""
|
|
}
|
|
]
|
|
} |