feat(dispatch): unify whole vehicle scheduling, source ownership and staged execution
This commit is contained in:
@@ -58,10 +58,18 @@ test('eight-hour cutoff has coherent later departure delivery and driver end wit
|
||||
assert.deepEqual(grayUiSchedule(now + 999), schedule)
|
||||
assert.match(schedule.cutoffAt, /Z$/); assert.match(schedule.plannedDepartureAt, /Z$/)
|
||||
assert.doesNotMatch(schedule.plannedDeliveryAt, /Z$/)
|
||||
const body = { idempotencyKey: 'stable', plannedDeliveryAt: 'old', fees: [{ amount: 30 }] }
|
||||
const body = { idempotencyKey: 'stable', recordVersion: '9007199254740993', groups: [
|
||||
{ groupKey: 'A:FBA:ONT8', plannedDeliveryAt: 'old', fees: [{ amount: 30 }] },
|
||||
{ groupKey: 'B:FBA:ONT8', plannedDeliveryAt: 'other', fees: [{ amount: 20 }] },
|
||||
] }
|
||||
const applied = applyGrayUiTransportWindow('POST', '/api/platform/v1/last-leg/dispatches/DS-1/transfer-delivery', body, schedule)
|
||||
assert.equal(applied.plannedDeliveryAt, schedule.plannedDeliveryAt)
|
||||
assert.equal(applied.idempotencyKey, body.idempotencyKey); assert.deepEqual(applied.fees, body.fees); assert.equal(body.plannedDeliveryAt, 'old')
|
||||
assert.deepEqual(applied.groups.map(group => group.plannedDeliveryAt), [schedule.plannedDeliveryAt, schedule.plannedDeliveryAt].map(value => new Date(value).toISOString()))
|
||||
assert.equal(applied.idempotencyKey, body.idempotencyKey); assert.equal(applied.recordVersion, body.recordVersion)
|
||||
assert.deepEqual(applied.groups.map(group => group.fees), body.groups.map(group => group.fees))
|
||||
assert.deepEqual(applied.groups.map(group => group.groupKey), body.groups.map(group => group.groupKey))
|
||||
assert.deepEqual(body.groups.map(group => group.plannedDeliveryAt), ['old', 'other'])
|
||||
assert.throws(() => applyGrayUiTransportWindow('POST', '/api/platform/v1/last-leg/dispatches/DS-1/transfer-delivery',
|
||||
{ idempotencyKey: 'stable', plannedDeliveryAt: 'old', fees: [{ amount: 30 }] }, schedule), /NATIVE_DELIVERY/)
|
||||
assert.equal(applyGrayUiTransportWindow('POST', '/api/auth/login', body, schedule), body)
|
||||
assert.equal(applyGrayUiTransportWindow('GET', '/api/platform/v1/last-leg/dispatches/DS-1/transfer-delivery', body, schedule), body)
|
||||
assert.throws(() => grayUiSchedule(NaN), /CLOCK/)
|
||||
|
||||
Reference in New Issue
Block a user