import { fileUpdateRequestSchema, fileLinkRequestSchema, photoVariantSchema, } from './file.schema'; import { describe, it, expect } from 'vitest'; describe('fileUpdateRequestSchema', () => { it('accepts optional metadata, nullable ids, an empty body', () => { expect( fileUpdateRequestSchema.safeParse({ description: 'doc', place_id: 3 }) .success, ).toBe(true); expect( fileUpdateRequestSchema.safeParse({ place_id: null, reservation_id: '7' }) .success, ).toBe(true); expect(fileUpdateRequestSchema.safeParse({}).success).toBe(true); }); }); describe('fileLinkRequestSchema', () => { it('accepts any subset of reservation/assignment/place ids', () => { expect(fileLinkRequestSchema.safeParse({ reservation_id: 1 }).success).toBe( true, ); expect( fileLinkRequestSchema.safeParse({ assignment_id: '2', place_id: null }) .success, ).toBe(true); expect(fileLinkRequestSchema.safeParse({}).success).toBe(true); }); }); describe('photoVariantSchema', () => { it('only allows thumbnail or original', () => { expect(photoVariantSchema.safeParse('thumbnail').success).toBe(true); expect(photoVariantSchema.safeParse('original').success).toBe(true); expect(photoVariantSchema.safeParse('full').success).toBe(false); }); });