- worker:等级升级计数移出验收事务,瞬时错误重试一次,最终失败转人工待办且不再返回 500 - worker:待验收阶段修改验收资料时保留 reviewMode/evidenceStatus/evidenceDueAt - cost-center:迁移 107 新增人工待归一覆盖部分索引(生产实测候选聚合 19.6s → 391ms) - cost-center:归一人工商品/按工单回填商品/模板预览前端超时放宽到 300s - cost-center:批处理接口语句超时放宽到 60s(SET LOCAL,在线接口仍为 15s)
83 lines
2.6 KiB
TypeScript
83 lines
2.6 KiB
TypeScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
import {
|
|
hasAcceptanceEvidence,
|
|
resolveVipAutoAcceptEvidencePatch,
|
|
} from './work-order-acceptance-evidence.js'
|
|
|
|
const VIDEO = { url: 'https://example.com/worker-acceptance-video/a.mp4', durationSeconds: 12 }
|
|
|
|
test('验收证据:只有图片算有证据', () => {
|
|
assert.equal(hasAcceptanceEvidence({ imageUrls: ['https://example.com/a.jpg'] }), true)
|
|
})
|
|
|
|
test('验收证据:只有视频也算有证据(视频视同图片)', () => {
|
|
assert.equal(hasAcceptanceEvidence({ imageUrls: [], video: VIDEO }), true)
|
|
})
|
|
|
|
test('验收证据:图片与视频都有算有证据', () => {
|
|
assert.equal(
|
|
hasAcceptanceEvidence({ imageUrls: ['https://example.com/a.jpg'], video: VIDEO }),
|
|
true,
|
|
)
|
|
})
|
|
|
|
test('验收证据:图片视频都没有则没有证据', () => {
|
|
assert.equal(hasAcceptanceEvidence({ imageUrls: [], video: null }), false)
|
|
assert.equal(hasAcceptanceEvidence({}), false)
|
|
assert.equal(hasAcceptanceEvidence({ imageUrls: undefined, video: undefined }), false)
|
|
})
|
|
|
|
test('验收证据:兼容非数组的 imageUrls(脏数据按无图片处理)', () => {
|
|
assert.equal(hasAcceptanceEvidence({ imageUrls: null, video: VIDEO }), true)
|
|
assert.equal(hasAcceptanceEvidence({ imageUrls: null, video: null }), false)
|
|
})
|
|
|
|
test('VIP 免审:待验收阶段改写验收资料后仍保留免审标记并清空补图期限', () => {
|
|
const patch = resolveVipAutoAcceptEvidencePatch(
|
|
{
|
|
reviewMode: 'vip_auto',
|
|
evidenceStatus: 'pending',
|
|
evidenceDueAt: '2026-10-30T06:00:00.000Z',
|
|
},
|
|
hasAcceptanceEvidence({ imageUrls: ['https://example.com/a.jpg'] }),
|
|
)
|
|
|
|
assert.deepEqual(patch, {
|
|
reviewMode: 'vip_auto',
|
|
evidenceStatus: 'complete',
|
|
evidenceDueAt: null,
|
|
})
|
|
})
|
|
|
|
test('VIP 免审:仍无证据时保留原 24 小时补图期限', () => {
|
|
const patch = resolveVipAutoAcceptEvidencePatch(
|
|
{
|
|
reviewMode: 'vip_auto',
|
|
evidenceStatus: 'pending',
|
|
evidenceDueAt: '2026-10-30T06:00:00.000Z',
|
|
},
|
|
hasAcceptanceEvidence({}),
|
|
)
|
|
|
|
assert.deepEqual(patch, {
|
|
reviewMode: 'vip_auto',
|
|
evidenceStatus: 'pending',
|
|
evidenceDueAt: '2026-10-30T06:00:00.000Z',
|
|
})
|
|
})
|
|
|
|
test('VIP 免审:改写资料时补图期限缺失也按无期限处理', () => {
|
|
const patch = resolveVipAutoAcceptEvidencePatch({ reviewMode: 'vip_auto' }, false)
|
|
|
|
assert.deepEqual(patch, {
|
|
reviewMode: 'vip_auto',
|
|
evidenceStatus: 'pending',
|
|
evidenceDueAt: null,
|
|
})
|
|
})
|
|
|
|
test('非 VIP 免审订单不写入免审标记', () => {
|
|
assert.deepEqual(resolveVipAutoAcceptEvidencePatch({ evidenceStatus: 'complete' }, true), {})
|
|
})
|