import { describe, expect, it } from 'vitest' import { bookingContainerError, createBlankBookingContainer, selectBookingContainerType } from './containerRequirements' describe('ocean booking real containers', () => { it('starts with one real container and applies the fixed platform specification', () => { const container = createBlankBookingContainer() expect(container).toEqual({ containerNo: '', containerType: '40HC', containerKind: 'FCL', capacityCbm: 76, maxWeightKg: 28000, }) selectBookingContainerType(container, '20GP') expect(container).toMatchObject({ containerType: '20GP', capacityCbm: 33, maxWeightKg: 28000 }) }) it('requires unique real container numbers and fixed specifications', () => { const first = { ...createBlankBookingContainer(), containerNo: 'MSCU1234567' } expect(bookingContainerError([createBlankBookingContainer()])).toContain('尚未填写集装箱号') expect(bookingContainerError([first, { ...first, containerNo: 'mscu1234567' }])).toContain('重复') expect(bookingContainerError([{ ...first, capacityCbm: 75 }])).toContain('固定规格') expect(bookingContainerError([first])).toBeNull() }) it('limits one booking to twenty real containers', () => { const containers = Array.from({ length: 21 }, (_, index) => ({ ...createBlankBookingContainer(), containerNo: `MSCU${index}` })) expect(bookingContainerError(containers)).toContain('最多登记 20 个') }) })