diff --git a/src/app/core/services/checkout.service.spec.ts b/src/app/core/services/checkout.service.spec.ts index 65407f3..57cdc79 100644 --- a/src/app/core/services/checkout.service.spec.ts +++ b/src/app/core/services/checkout.service.spec.ts @@ -38,4 +38,20 @@ describe('CheckoutService', () => { await expect(purchasePromise).resolves.toMatchObject({ id: 55 }); }); + + it('preserves checkout timing fields when completing a purchase', async () => { + const purchasePromise = service.completePurchase('desfile', 55); + const request = httpMock.expectOne(`${environment.url}tenants/desfile/compras/55/complete`); + const response = { + status: 'pending_payment', + expires_at: '2026-08-26T20:00:00.000Z', + expires_in_seconds: 900, + server_time: '2026-08-26T19:45:00.000Z', + }; + + expect(request.request.method).toBe('POST'); + request.flush({ data: response }); + + await expect(purchasePromise).resolves.toEqual(response); + }); }); diff --git a/src/app/core/services/checkout.service.ts b/src/app/core/services/checkout.service.ts index 1952549..4d1d2bb 100644 --- a/src/app/core/services/checkout.service.ts +++ b/src/app/core/services/checkout.service.ts @@ -70,6 +70,9 @@ export type StartCheckoutPayload = export interface PurchaseStatusResponse { status: string | null; + expires_at: string | null; + expires_in_seconds: number | null; + server_time: string; } export interface PurchaseSummaryResponse extends PurchaseStatusResponse { @@ -106,7 +109,6 @@ export interface PurchaseDetailResponse extends PurchaseStatusResponse { user_id: number; created_at: string | null; payment_method: string | null; - expires_at: string | null; dni: string | null; transfer_payer_dni: string | null; telefono: string | null; @@ -200,9 +202,7 @@ export class CheckoutService extends BaseApiService { throw new Error('Error al finalizar la compra.'); } - return { - status: purchase.status ?? null, - }; + return purchase; } async submitPurchaseForReview( @@ -221,7 +221,7 @@ export class CheckoutService extends BaseApiService { throw new Error('Error al enviar la compra a revisi\u00f3n.'); } - return { status: purchase.status ?? null }; + return purchase; } async cancelPurchase(tenantCode: string, purchaseId: number): Promise { @@ -237,7 +237,7 @@ export class CheckoutService extends BaseApiService { throw new Error('Error al cancelar la compra.'); } - return { status: purchase.status ?? null }; + return purchase; } async getPurchases(