Spaces:
Sleeping
Sleeping
File size: 1,438 Bytes
cb43fbd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import {
reservationCreateRequestSchema,
reservationPositionsRequestSchema,
accommodationCreateRequestSchema,
} from './reservation.schema';
import { describe, it, expect } from 'vitest';
describe('reservationCreateRequestSchema', () => {
it('requires a title and keeps the other booking fields open', () => {
expect(
reservationCreateRequestSchema.safeParse({
title: 'Hotel',
anything: 1,
metadata: {},
}).success,
).toBe(true);
expect(
reservationCreateRequestSchema.safeParse({ location: 'x' }).success,
).toBe(false);
});
});
describe('reservationPositionsRequestSchema', () => {
it('requires positions with id + day_plan_position', () => {
expect(
reservationPositionsRequestSchema.safeParse({
positions: [{ id: 1, day_plan_position: 0 }],
day_id: 3,
}).success,
).toBe(true);
expect(
reservationPositionsRequestSchema.safeParse({ positions: [{ id: 1 }] })
.success,
).toBe(false);
});
});
describe('accommodationCreateRequestSchema', () => {
it('requires place + start/end day; check-in/out optional', () => {
expect(
accommodationCreateRequestSchema.safeParse({
place_id: 2,
start_day_id: 10,
end_day_id: 11,
}).success,
).toBe(true);
expect(
accommodationCreateRequestSchema.safeParse({ place_id: 2 }).success,
).toBe(false);
});
});
|