Files
shanxia2.0/web-admin/src/utils/pl-dibang-optional-vehicle.test.ts
T
2026-09-03 13:50:25 +08:00

60 lines
2.1 KiB
TypeScript

import assert from 'node:assert/strict'
import { describe, it } from 'node:test'
import {
canManualToggleStopDibang,
resolveStopDibangDefaults
} from './pl-plan-stop-form'
import { isPlDibangOptionalVehiclePlate } from './pl-internal-customer'
const INTERNAL = '安庆市山峡化工有限公司'
const YUNDONG = '安徽云栋化工有限公司'
const EXTERNAL = '某某贸易有限公司'
const OPTIONAL_PLATE = '皖H21522'
describe('isPlDibangOptionalVehiclePlate', () => {
it('matches exact main plate', () => {
assert.equal(isPlDibangOptionalVehiclePlate(OPTIONAL_PLATE), true)
assert.equal(isPlDibangOptionalVehiclePlate(` ${OPTIONAL_PLATE} `), true)
})
it('rejects other plates', () => {
assert.equal(isPlDibangOptionalVehiclePlate('皖A12345'), false)
assert.equal(isPlDibangOptionalVehiclePlate(''), false)
})
})
describe('resolveStopDibangDefaults + canManualToggleStopDibang', () => {
it('internal + normal vehicle: auto-check, not manual', () => {
assert.deepEqual(resolveStopDibangDefaults(INTERNAL, 'load', '皖A11111'), {
generateDibang: 1,
dibangDirection: 'outbound'
})
assert.deepEqual(resolveStopDibangDefaults(YUNDONG, 'delivery', '皖A11111'), {
generateDibang: 1,
dibangDirection: 'inbound'
})
assert.equal(canManualToggleStopDibang(INTERNAL, '皖A11111'), false)
})
it('internal + optional vehicle: unchecked, manual allowed', () => {
assert.deepEqual(resolveStopDibangDefaults(INTERNAL, 'load', OPTIONAL_PLATE), {
generateDibang: 0,
dibangDirection: 'none'
})
assert.deepEqual(resolveStopDibangDefaults(YUNDONG, 'delivery', OPTIONAL_PLATE), {
generateDibang: 0,
dibangDirection: 'none'
})
assert.equal(canManualToggleStopDibang(INTERNAL, OPTIONAL_PLATE), true)
assert.equal(canManualToggleStopDibang(YUNDONG, OPTIONAL_PLATE), true)
})
it('external + optional vehicle: still locked off', () => {
assert.deepEqual(resolveStopDibangDefaults(EXTERNAL, 'load', OPTIONAL_PLATE), {
generateDibang: 0,
dibangDirection: 'none'
})
assert.equal(canManualToggleStopDibang(EXTERNAL, OPTIONAL_PLATE), false)
})
})