fix: display dispatch review times in eastern and pacific zones
This commit is contained in:
@@ -211,12 +211,32 @@ test('missing appointment blocks approval while preserving rejection to customer
|
||||
storage(); const sent = []
|
||||
const state = page({ reviewDispatchLoading: async (...args) => { sent.push(args); return proof(lastCommand) }, getDispatchTask: async () => task({ recordVersion: 1 }) })
|
||||
state.current = reviewTask({ actions: { LOADING_REVIEW: { allowed: true, blockCode: 'APPROVAL_BLOCKED', blockReason: '预约收货时间尚未确认' } } })
|
||||
assert.equal(state.reviewTime('2026-10-21T17:00:00Z'), '2026-10-22 01:00')
|
||||
assert.equal(state.reviewTime('2026-10-21T17:00:00Z'), '美东 2026-10-21 13:00\n美西 2026-10-21 10:00')
|
||||
assert.equal(state.reviewTime(null), '未填写')
|
||||
state.reviewReason = '请客服补齐预约时间'
|
||||
await state.submitReview('APPROVED'); assert.equal(sent.length, 0); assert.match(state.error.message, /预约收货时间尚未确认/)
|
||||
await state.submitReview('REJECTED'); assert.equal(sent.length, 1); assert.equal(sent[0][1].decision, 'REJECTED')
|
||||
})
|
||||
|
||||
for (const [instant, expected] of [
|
||||
['2026-11-06T00:00:00+08:00', '美东 2026-11-05 11:00\n美西 2026-11-05 08:00'],
|
||||
['2026-11-05T16:00:00Z', '美东 2026-11-05 11:00\n美西 2026-11-05 08:00'],
|
||||
['2026-07-01T15:00:00Z', '美东 2026-07-01 11:00\n美西 2026-07-01 08:00'],
|
||||
['2026-03-08T06:30:00Z', '美东 2026-03-08 01:30\n美西 2026-03-07 22:30'],
|
||||
['2026-03-08T07:30:00Z', '美东 2026-03-08 03:30\n美西 2026-03-07 23:30'],
|
||||
['2026-03-08T10:30:00Z', '美东 2026-03-08 06:30\n美西 2026-03-08 03:30'],
|
||||
['2026-11-01T05:30:00Z', '美东 2026-11-01 01:30\n美西 2026-10-31 22:30'],
|
||||
['2026-11-01T07:30:00Z', '美东 2026-11-01 02:30\n美西 2026-11-01 00:30'],
|
||||
['2026-11-01T10:30:00Z', '美东 2026-11-01 05:30\n美西 2026-11-01 02:30'],
|
||||
]) test(`review times use eastern and pacific daylight-saving rules for ${instant}`, () => {
|
||||
assert.equal(page().reviewTime(instant), expected)
|
||||
})
|
||||
|
||||
test('review times preserve missing values and reject invalid or timezone-free timestamps', () => {
|
||||
const state = page()
|
||||
for (const missing of [null, undefined, '']) assert.equal(state.reviewTime(missing), '未填写')
|
||||
for (const invalid of ['not-a-date', 'invalidZ', '2026-11-06T00:00:00', '2026-11-06']) assert.equal(state.reviewTime(invalid), '时间无效')
|
||||
})
|
||||
test('review task is reachable in the existing list and blocks actual source selection until approval', async () => {
|
||||
storage(); const state = page({ listDispatchTasks: async () => [reviewTask()], getDispatchTask: async () => reviewTask() })
|
||||
await state.loadTasks(); assert.equal(state.tasks.length, 1); assert.equal(state.stageLabel(state.tasks[0]), '待理货审核')
|
||||
|
||||
Reference in New Issue
Block a user