Project

General

Profile

QA验收 #35 » results.json

Redmine Admin, 11/02/2026 07:17 AM

 
{
"task": 106,
"package": "margin-confirm-ui",
"parentIssue": 35,
"atShanghai": "2026-11-02T15:15:56.599228+08:00",
"candidateSHA256": "0e6e0358ba7fb044e8557919145125a5fd1e20ec5b76d3078bd555f32fec3d06",
"counts": {
"Pass": 11,
"Fail": 0,
"Blocked": 1,
"Skipped": 0
},
"functionalObservationsPassed": 10,
"cleanupChecksPassed": 1,
"cases": [
{
"id": "QA106-MARGINCONFIRM-CANCEL",
"name": "普通编辑取消",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "取消0写、旧flag及草稿保持",
"actual": "Task2取消后counter0、checkbox false、未提交memo保持",
"status": "Pass",
"evidence": [
"cancel-result.json",
"03-cancel-keeps-unchecked.png"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-FINISHED-COST",
"name": "finished有成本确认与刷新",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "1次确认仅flag PUT、0成本写,草稿不夹带,刷新持久",
"actual": "Task2 false→true→false;两个HTTP200单flag PUT;首次成功草稿保持,刷新memo恢复服务端原值;完整成本16不变",
"status": "Pass",
"evidence": [
"task2-confirm-result.json",
"task2-refresh-result.json",
"task2-restore-result.json",
"dto-comparisons.json",
"04-ordinary-confirmed-checked.png",
"05-task2-refresh-persists.png"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-FINISHED-NOCOST",
"name": "finished无成本双向确认",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "无成本也可窄保存,不提交完整表单",
"actual": "Task3 false→true→false,每次HTTP200单flag,memo草稿保留",
"status": "Pass",
"evidence": [
"task3-true-result.json",
"task3-false-result.json",
"dto-comparisons.json"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-PAID",
"name": "已付Task相邻边界",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "仅flag变化、不修改已付成本及任务状态",
"actual": "Task21/cost23 paid;false→true→false,完整成本与状态一致,未提交备注未落库",
"status": "Pass",
"evidence": [
"task21-true-result.json",
"task21-false-result.json",
"08-paid-task-flag-only.png",
"dto-comparisons.json"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-ONGOING",
"name": "既有进行中样本",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "只能改flag,仍ongoing并恢复原值",
"actual": "fresh Task4 LOCAL-R1:c、project3/company b,false→true→false,DTO除flag/毛利投影不变,最终整DTO恢复",
"status": "Pass",
"evidence": [
"ongoing-readonly-candidates.json",
"task4-true-result.json",
"task4-false-result.json",
"flag-restoration-verification.json"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-QUICK",
"name": "快捷编辑单次确认与取消",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "取消0写;原弹窗确认1次窄保存,无二次弹窗",
"actual": "Task3快捷取消0写;确认后1次HTTP200单flag PUT,弹窗关闭、GET true,无第二弹窗;普通页合法恢复false",
"status": "Pass",
"evidence": [
"quick-cancel-result.json",
"quick-confirm-result.json",
"quick-restore-result.json",
"09-quick-confirm-viewport.png"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-FAULT",
"name": "明确一次浏览器请求阻断",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "发网前阻断后不冒成功、无自动重试,读回旧值",
"actual": "Task3一次标记PUT在XHR.send前抛NetworkError,blockedBeforeNetwork=true;正常GET false,显示已核对当前标记警告、草稿保持;非真实服务端错误",
"status": "Pass",
"evidence": [
"task3-fault-result.json",
"06-injected-failure-honest-warning.png"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-CREATE",
"name": "普通创建只观察",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "勾选保持本地草稿,不即时POST或确认弹窗",
"actual": "既有project3创建页false→true→false,无弹窗、counter不增加、未按提交",
"status": "Pass",
"evidence": [
"ordinary-create-observation.json",
"12-create-draft-no-immediate-confirm.png"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-QUICKCREATE",
"name": "快速创建只观察",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "原创建弹窗切flag零写,不创建Task",
"actual": "快速任务弹窗勾选后仅本地true,0写、仍1原弹窗,取消退出未按创建",
"status": "Pass",
"evidence": [
"quick-create-observation.json",
"13-quick-create-draft-only.png"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-COPY",
"name": "复制只观察",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "现有Task复制目标页切flag零写,不创建Task",
"actual": "Task3真实复制按钮进入project2创建页,默认false,勾选true未弹确认/无write,再取消草稿;未提交,不声称true源flag复制重置已测",
"status": "Pass",
"evidence": [
"copy-observation.json",
"14-copy-draft-flag-only.png"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-ROLE-BOUNDARY",
"name": "其他角色与只读关系",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机真实浏览器/API",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "不改角色/RolePermission,以实际合法权限验证",
"actual": "本轮仅admin1实测;finance/PM没有本轮页面实测及适用只读关系证据,不为补证扩大权限或换账号;其他角色尚未验证",
"status": "Blocked",
"evidence": [
"catalog-baseline.json",
"admin-permission-summary.json",
"plan.md"
],
"defect": null
},
{
"id": "QA106-MARGINCONFIRM-CLEANUP",
"name": "精确恢复与退出",
"impact": "margin-confirm-ui普通/快捷标记单字段确认;父#35",
"layer": "本机恢复/清理读回",
"precondition": "已冻结FE候选、本机BE700740e、专用admin1,LOCAL-R1合成对象;临时三页面catalog获用户授权",
"expected": "仅恢复本轮flag/临时catalog,原权限角色数据不变",
"actual": "Task2/3/4/21整DTO含完整成本精确等于基线;catalog29/30/31无children/role refs后删除,profile+catalog+roles精确恢复;清观察器、正常退出、Space7 finish一次;noFurtherHTTPUI=true",
"status": "Pass",
"evidence": [
"flag-restoration-verification.json",
"catalog-cleanup-guard.json",
"catalog-restoration-readback.json",
"observer-cleanup.json",
"logout-readback.json",
"browser-closeout.json"
],
"defect": null
}
],
"successfulTaskFlagPUTs": 10,
"costWrites": 0,
"creationAttempts": 0,
"oneDeliberateBrowserFaultBeforeNetwork": 1,
"sourceChanged": false,
"noFurtherHTTPUI": true,
"noDeployment": true
}
(26-26/34)