import assert from 'node:assert/strict' import { readFile } from 'node:fs/promises' import test from 'node:test' /** * 2026-10-30 生产事故:提交验收按钮没有在途锁,双击会发两个请求;第二个请求 * 把已验收的工单写回待验收并触发重复结算。按钮必须在请求结束前保持 loading/禁用。 */ test('打手端验收提交按钮有在途锁,双击只会发一个请求', async () => { const source = await readFile( new URL('../src/pages/worker/WorkerOrderModals.tsx', import.meta.url), 'utf8', ) assert.ok(source.includes('acceptanceBusyRef'), '缺少同步在途锁 ref') assert.ok(source.includes('runAcceptanceAction'), '缺少统一的验收动作包装') assert.ok( (source.match(/loading={acceptanceBusy}/g) || []).length >= 2, '提交验收/补充图片按钮都应显示 loading', ) assert.ok( source.includes('onFinish={(values) => runAcceptanceAction(() => onSubmitAcceptance(values))}'), '表单提交也必须走在途锁', ) })