mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 00:52:50 +00:00
60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import {
|
|
autoFillPlacements,
|
|
findMissingContainerNumberIssues,
|
|
type ContainerUnitForPlacement,
|
|
} from './container-placement.util';
|
|
|
|
describe('container-placement.util', () => {
|
|
const units: ContainerUnitForPlacement[] = [
|
|
{
|
|
bookingId: 'b1',
|
|
bookingContainerId: 'c1',
|
|
unitIndex: 0,
|
|
label: 'REF · 1/1 · 20GP',
|
|
teuSlots: 1,
|
|
sizeFt: 20,
|
|
containerNumber: 'ABCD1234567',
|
|
},
|
|
{
|
|
bookingId: 'b2',
|
|
bookingContainerId: 'c2',
|
|
unitIndex: 0,
|
|
label: 'REF2 · 1/1 · 40GP',
|
|
teuSlots: 2,
|
|
sizeFt: 40,
|
|
containerNumber: null,
|
|
},
|
|
];
|
|
|
|
it('auto-fills placements across slots', () => {
|
|
const placements = autoFillPlacements(units, [1, 2]);
|
|
expect(placements).toHaveLength(2);
|
|
expect(placements[0].sequenceNo).toBe(1);
|
|
expect(placements[1].sequenceNo).toBe(2);
|
|
});
|
|
|
|
it('reports missing container numbers only when placement is empty', () => {
|
|
const placements = autoFillPlacements(units, [1, 2]);
|
|
const issues = findMissingContainerNumberIssues(units, placements);
|
|
expect(issues).toHaveLength(0);
|
|
expect(placements[1].containerNumber).toMatch(/^TBD-/);
|
|
});
|
|
|
|
it('generates TBD placeholder for missing container numbers', () => {
|
|
const single: ContainerUnitForPlacement[] = [
|
|
{
|
|
bookingId: 'b2',
|
|
bookingReference: 'BK-2026-000033',
|
|
bookingContainerId: 'c2',
|
|
unitIndex: 0,
|
|
label: 'REF2 · 1/1 · 40GP',
|
|
teuSlots: 2,
|
|
sizeFt: 40,
|
|
containerNumber: null,
|
|
},
|
|
];
|
|
const placements = autoFillPlacements(single, [1]);
|
|
expect(placements[0].containerNumber).toBe('TBD-BK-2026-000033-1');
|
|
});
|
|
});
|