Files
shanxia2.0/web-admin/src/utils/pl-plan-pair-list-query.test.ts
T
2026-10-15 08:50:25 +08:00

57 lines
2.3 KiB
TypeScript

import assert from 'node:assert/strict'
import { describe, it } from 'node:test'
import {
applyContractSideQueryParams,
selectedContractStopKinds
} from './pl-plan-pair-list-query.ts'
describe('selectedContractStopKinds', () => {
it('returns single side when only 供 or 需 is selected', () => {
assert.deepEqual(selectedContractStopKinds({ selected: ['load'] }), ['load'])
assert.deepEqual(selectedContractStopKinds({ selected: ['delivery'] }), ['delivery'])
})
it('returns null when both sides or neither are selected', () => {
assert.equal(selectedContractStopKinds({ selected: ['load', 'delivery'] }), null)
assert.equal(selectedContractStopKinds({ selected: [] }), null)
assert.equal(selectedContractStopKinds(null), null)
})
it('ignores contract numbers mixed into selected', () => {
assert.deepEqual(
selectedContractStopKinds({ selected: ['HT-001', 'load'] }),
['load']
)
})
})
describe('applyContractSideQueryParams', () => {
it('sets stopKindIn and strips side tokens from contractNoIn', () => {
const params: Record<string, any> = { contractNoIn: 'HT-001,load' }
applyContractSideQueryParams(params, { selected: ['HT-001', 'load'] })
assert.equal(params.stopKindIn, 'load')
assert.equal(params.contractNoIn, 'HT-001')
})
it('removes contractNoIn when it only contained side tokens', () => {
const params: Record<string, any> = { contractNoIn: 'delivery' }
applyContractSideQueryParams(params, { selected: ['delivery'] })
assert.equal(params.stopKindIn, 'delivery')
assert.equal(params.contractNoIn, undefined)
})
it('does not set stopKindIn when both sides are selected', () => {
const params: Record<string, any> = { contractNoIn: 'HT-001,load,delivery' }
applyContractSideQueryParams(params, { selected: ['HT-001', 'load', 'delivery'] })
assert.equal(params.stopKindIn, undefined)
assert.equal(params.contractNoIn, 'HT-001')
})
it('keeps 入库/出库 tokens in contractNoIn for server placeholder filter', () => {
const params: Record<string, any> = { contractNoIn: '出库,入库,load' }
applyContractSideQueryParams(params, { selected: ['出库', '入库', 'load'] })
assert.equal(params.stopKindIn, 'load')
assert.equal(params.contractNoIn, '出库,入库')
})
})