Spaces:
Sleeping
Sleeping
| import { | |
| tripCreateRequestSchema, | |
| tripUpdateRequestSchema, | |
| tripAddMemberRequestSchema, | |
| } from './trip.schema'; | |
| import { describe, it, expect } from 'vitest'; | |
| describe('tripCreateRequestSchema', () => { | |
| it('requires a title; dates/currency/reminder optional', () => { | |
| expect(tripCreateRequestSchema.safeParse({ title: 'Japan' }).success).toBe( | |
| true, | |
| ); | |
| expect( | |
| tripCreateRequestSchema.safeParse({ | |
| title: 'Japan', | |
| start_date: '2026-07-01', | |
| day_count: 7, | |
| }).success, | |
| ).toBe(true); | |
| expect(tripCreateRequestSchema.safeParse({}).success).toBe(false); | |
| }); | |
| }); | |
| describe('tripUpdateRequestSchema', () => { | |
| it('is fully partial and accepts is_archived + cover_image', () => { | |
| expect(tripUpdateRequestSchema.safeParse({}).success).toBe(true); | |
| expect( | |
| tripUpdateRequestSchema.safeParse({ is_archived: 1, cover_image: null }) | |
| .success, | |
| ).toBe(true); | |
| }); | |
| }); | |
| describe('tripAddMemberRequestSchema', () => { | |
| it('requires an identifier', () => { | |
| expect( | |
| tripAddMemberRequestSchema.safeParse({ identifier: 'bob@x.y' }).success, | |
| ).toBe(true); | |
| expect(tripAddMemberRequestSchema.safeParse({}).success).toBe(false); | |
| }); | |
| }); | |