diff --git a/src/contracts/checkout.ts b/src/contracts/checkout.ts index 73cb570..465f651 100644 --- a/src/contracts/checkout.ts +++ b/src/contracts/checkout.ts @@ -57,6 +57,7 @@ export const PaymentReceivedInputSchema = z.object({ z.object({ paymentHash: z.string(), amountSats: z.number(), + sandbox: z.boolean().default(false), }), ), }); diff --git a/tests/contracts/checkout.test.ts b/tests/contracts/checkout.test.ts index 8d43da9..ac49cc0 100644 --- a/tests/contracts/checkout.test.ts +++ b/tests/contracts/checkout.test.ts @@ -270,6 +270,20 @@ describe('Checkout Contracts', () => { expect(result.success).toBe(true); }); + test('should allow sandbox flag on payment', () => { + const input = { + payments: [{ + paymentHash: 'hash-sandbox', + amountSats: 1500, + sandbox: true, + }], + }; + + const result = PaymentReceivedInputSchema.safeParse(input); + expect(result.success).toBe(true); + expect(result.success && result.data.payments[0]?.sandbox).toBe(true); + }); + test('should reject without paymentHash', () => { const input = { amountSats: 1500, @@ -364,4 +378,4 @@ describe('Checkout Contracts', () => { expect(PaymentReceivedInputSchema.safeParse(paymentInput).success).toBe(true); }); }); -}); \ No newline at end of file +});