test(fleet): verify vehicle care lifecycle independently
This commit is contained in:
@@ -2,6 +2,43 @@ import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import test from 'node:test'
|
||||
import { run, vehicleCapacityMatches } from './phase4-overseas-master-data.mjs'
|
||||
import { run as runCare } from './fleet-vehicle-care.mjs'
|
||||
|
||||
test('运维专项接受NON_NULL真实响应但仍完成全部六类记录和两车停用', async () => {
|
||||
const { context, state } = fakeContext()
|
||||
const request = context.request.bind(context)
|
||||
context.request = async (...args) => JSON.parse(JSON.stringify(await request(...args), (_key, value) => value === null ? undefined : value))
|
||||
await runCare(context)
|
||||
assert.equal(context.createdResources.fleetVehicleCare.status, 'VERIFIED')
|
||||
assert.equal(context.createdResources.fleetVehicleCare.care.records.length, 6)
|
||||
assert.equal(context.createdResources.fleetVehicleCare.cleanup, 'INACTIVE')
|
||||
assert.equal(state.vehicle.status, 'INACTIVE')
|
||||
assert.equal(state.spareVehicle.status, 'INACTIVE')
|
||||
})
|
||||
|
||||
test('省略实际维修项目仍失败,失败后停用主车辆并保留报告', async () => {
|
||||
const { context, state } = fakeContext({ softAssertions: true })
|
||||
const request = context.request.bind(context)
|
||||
context.request = async (...args) => {
|
||||
const response = await request(...args)
|
||||
if (response.body?.data?.details?.recordType === 'REPAIR') delete response.body.data.details.incident.item
|
||||
return response
|
||||
}
|
||||
await assert.rejects(runCare(context), /事件项目地点和分类完整回显/)
|
||||
assert.equal(context.createdResources.fleetVehicleCare.status, 'FAILED')
|
||||
assert.equal(context.createdResources.fleetVehicleCare.cleanup, 'INACTIVE')
|
||||
assert.equal(state.vehicle.status, 'INACTIVE')
|
||||
})
|
||||
|
||||
test('运维专项停用失败不得标记整个运行通过', async () => {
|
||||
const { context } = fakeContext()
|
||||
const request = context.request.bind(context)
|
||||
context.request = async (...args) => args[0] === 'PATCH' && args[1].endsWith('/930000000000000001/status')
|
||||
? { http: 503, body: { code: 'S0503' } } : request(...args)
|
||||
await assert.rejects(runCare(context))
|
||||
assert.equal(context.createdResources.fleetVehicleCare.status, 'FAILED')
|
||||
assert.equal(context.createdResources.fleetVehicleCare.cleanup, 'FAILED')
|
||||
})
|
||||
|
||||
test('vehicle capacity evidence rejects absent, zero and guessed dimensions', () => {
|
||||
const expected = { maxPalletSpaces: 30, maxLoadKg: 18000, maxVolumeCbm: 90 }
|
||||
|
||||
Reference in New Issue
Block a user