25 lines
1.4 KiB
TypeScript
25 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { containerRequirementError, createBlankContainerRequirement, selectContainerRequirementType } from './containerRequirements'
|
|
|
|
describe('ocean booking container requirements', () => {
|
|
it('starts with one requirement and applies the fixed platform specification', () => {
|
|
const requirement = createBlankContainerRequirement()
|
|
expect(requirement).toEqual({ containerType: '40HQ', containerKind: 'FCL', quantity: 1, capacityCbm: 68, maxWeightKg: 19500 })
|
|
selectContainerRequirementType(requirement, '40GP')
|
|
expect(requirement).toMatchObject({ containerType: '40GP', capacityCbm: 58, maxWeightKg: 19500 })
|
|
})
|
|
|
|
it('requires positive quantities and fixed specifications', () => {
|
|
const requirement = createBlankContainerRequirement()
|
|
expect(containerRequirementError([])).toContain('至少保留一项')
|
|
expect(containerRequirementError([{ ...requirement, quantity: 0 }])).toContain('数量必须')
|
|
expect(containerRequirementError([{ ...requirement, capacityCbm: 75 }])).toContain('固定规格')
|
|
expect(containerRequirementError([requirement])).toBeNull()
|
|
})
|
|
|
|
it('limits one booking to twenty requirement rows', () => {
|
|
const requirements = Array.from({ length: 21 }, () => createBlankContainerRequirement())
|
|
expect(containerRequirementError(requirements)).toContain('最多登记 20 项')
|
|
})
|
|
})
|