回执再次优化

This commit is contained in:
andy
2026-09-23 12:02:56 +08:00
parent a7c9cc358a
commit 4cfbefffe8
11 changed files with 230 additions and 45 deletions

View File

@@ -76,9 +76,9 @@ test('native child-create receipts carry the verified parent; missing parents re
test('roster counts use the latest import per subject and never add repeated uploads',()=>{
const events=[ev('passenger_list_import',{details:{roster_count:20}}),ev('passenger_list_import',{time:'2026-09-20T02:00:00Z',details:{roster_count:18}})];
const text=teamProgressText(snapshot(events));assert.match(text,/最近一次18人/);assert.doesNotMatch(text,/38人|20人/);
const text=teamProgressText(snapshot(events));assert.match(text,/最近一次 18 人/);assert.doesNotMatch(text,/38人|20人/);
const late={...events[0],recorded_at:'2026-09-21T00:00:00Z'};
assert.match(teamProgressText(snapshot([events[1],late])),/最近一次18人/);
assert.match(teamProgressText(snapshot([events[1],late])),/最近一次 18 人/);
});
test('shared-plan summaries separate each child and never claim every roster is complete',()=>{
@@ -106,7 +106,7 @@ test('all current arrangement rows render supported details; unknown legacy deta
{action:'arrangement_hotel',details:{}},
{action:'arrangement_transport',details:{resource_name:'票务甲',item:'C91',date:'2026-10-01',quantity:20}},
{action:'arrangement_other',details:{resource_name:'备案项目',filing_number:'ABC',filing_entry_port:'口岸甲',filing_exit_port:'口岸乙',remark:'备注'}}];
const text=teamProgressText(s);for(const term of ['酒店:已安排,共2条','酒店甲','明细未记录','车牌甲','司机电话','备案号:ABC','C91'])assert.ok(text.includes(term),term);
const text=teamProgressText(s);for(const term of ['酒店:已安排,共 2 条','酒店甲','明细未记录','车牌甲','司机电话','备案号:ABC','C91'])assert.ok(text.includes(term),term);
});
test('exports are latest per file type and labelled stale after later changes without deleting records',()=>{
@@ -122,7 +122,7 @@ test('receipts stay frozen and rebuilding never duplicates the progress block',(
const i=input('order_update_independent'),base={success:true,group_number:'LW-TEST-A',team_progress:snapshot([ev('team_order_create')])};
const first=buildCustomerSuccessReceipt(base,i.result,i.operation);
assert.equal(replyTextFromReceipt(buildCustomerSuccessReceipt(first,i.result,i.operation)),replyTextFromReceipt(first));
assert.equal(replyTextFromReceipt(first).match(/本系统团队办理进度/g)?.length,1);
assert.equal(replyTextFromReceipt(first).match(/📌【当前安排】/g)?.length,1);
});
test('encrypted ledger isolates accounts and organizations, deduplicates, and survives task deletion',async()=>{