homo_experimental #2

Merged
ncoronel merged 19 commits from homo_experimental into homologacion 2026-08-31 11:25:31 +00:00
22 changed files with 478 additions and 96 deletions
Showing only changes of commit b0d2cd05bc - Show all commits

View File

@@ -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);
});
});

View File

@@ -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<PurchaseStatusResponse> {
@@ -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(