mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-28 05:30:55 +00:00
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { BadRequestException } from '@nestjs/common';
|
|
|
|
import { assertDoCollectionDates } from './contract-clearance.util';
|
|
|
|
describe('assertDoCollectionDates', () => {
|
|
it('requires both dates', () => {
|
|
expect(() => assertDoCollectionDates(undefined)).toThrow(BadRequestException);
|
|
expect(() =>
|
|
assertDoCollectionDates({ vesselArrivalDate: '2026-07-01' }),
|
|
).toThrow(/DO collected date is required/);
|
|
expect(() =>
|
|
assertDoCollectionDates({ doCollectedDate: '2026-07-01' }),
|
|
).toThrow(/Vessel arrival date is required/);
|
|
// Whitespace is not a date.
|
|
expect(() =>
|
|
assertDoCollectionDates({ vesselArrivalDate: ' ', doCollectedDate: ' ' }),
|
|
).toThrow(BadRequestException);
|
|
});
|
|
|
|
it('rejects a DO collected before the vessel arrived', () => {
|
|
expect(() =>
|
|
assertDoCollectionDates({
|
|
vesselArrivalDate: '2026-07-10',
|
|
doCollectedDate: '2026-07-09',
|
|
}),
|
|
).toThrow(/cannot be earlier than the vessel arrival date/);
|
|
});
|
|
|
|
it('normalizes an ISO datetime down to its date part', () => {
|
|
expect(
|
|
assertDoCollectionDates({
|
|
vesselArrivalDate: '2026-07-10T21:00:00.000Z',
|
|
doCollectedDate: '2026-07-10T05:00:00.000Z',
|
|
}),
|
|
).toEqual({ vesselArrivalDate: '2026-07-10', doCollectedDate: '2026-07-10' });
|
|
});
|
|
|
|
it('rejects a malformed date', () => {
|
|
expect(() =>
|
|
assertDoCollectionDates({
|
|
vesselArrivalDate: '10/07/2026',
|
|
doCollectedDate: '2026-07-10',
|
|
}),
|
|
).toThrow(/not a valid date/);
|
|
});
|
|
});
|