test(fleet): verify vehicle care lifecycle independently

This commit is contained in:
2026-10-03 10:54:03 +08:00
parent d4d5d79070
commit ba7dcd39f2
5 changed files with 102 additions and 7 deletions
@@ -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 }