60 lines
2.1 KiB
TypeScript
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)
|
|
})
|
|
})
|