import { describe, expect, it } from 'vitest' import { manualPaymentSchema, paymentParamSchema, refundSchema, reservationParamSchema } from './payment.schemas' describe('payment schemas edge cases', () => { it('defaults manual payment currency/type and accepts supported methods', () => { expect(manualPaymentSchema.parse({ amount: 500, paymentMethod: 'BANK_TRANSFER' })).toMatchObject({ amount: 500, currency: 'MAD', type: 'CHARGE' }) expect(manualPaymentSchema.safeParse({ amount: 0, paymentMethod: 'CHECK' }).success).toBe(false) expect(manualPaymentSchema.safeParse({ amount: 100, paymentMethod: 'PAYPAL' }).success).toBe(false) expect(manualPaymentSchema.safeParse({ amount: 100, paymentMethod: 'CASH' }).success).toBe(false) }) it('validates refund and payment parameter payloads', () => { expect(refundSchema.parse({})).toEqual({}) expect(refundSchema.safeParse({ amount: -1 }).success).toBe(false) expect(reservationParamSchema.safeParse({ id: '' }).success).toBe(false) expect(paymentParamSchema.safeParse({ reservationId: 'reservation_1', paymentId: 'payment_1' }).success).toBe(true) }) })