diff --git a/src/app/features/store/pages/checkout-page/checkout-page.component.spec.ts b/src/app/features/store/pages/checkout-page/checkout-page.component.spec.ts index b9f4845..bdcdd71 100644 --- a/src/app/features/store/pages/checkout-page/checkout-page.component.spec.ts +++ b/src/app/features/store/pages/checkout-page/checkout-page.component.spec.ts @@ -191,24 +191,30 @@ describe('CheckoutPageComponent payment validation', () => { expect(checkoutServiceStub.getPurchase).not.toHaveBeenCalled(); }); - it('submits a transfer for review and navigates to its status page', async () => { - const { component } = createComponent(); - component.selectedPaymentMethod.set('transfer'); + it.each(['created', 'pending_payment', 'in_review'])( + 'shows the payment error when a transfer remains %s', + async (status) => { + checkoutServiceStub.submitPurchaseForReview.mockResolvedValue({ status }); + const { component } = createComponent(); + component.selectedPaymentMethod.set('transfer'); - await component.onComplete(); + await component.onComplete(); - expect(checkoutServiceStub.submitPurchaseForReview).toHaveBeenCalledWith('tenant-test', 25); - expect(cartServiceStub.clearCart).not.toHaveBeenCalled(); - expect(routerStub.navigate).toHaveBeenCalledWith(['/checkout/status', 25]); - }); + expect(checkoutServiceStub.submitPurchaseForReview).toHaveBeenCalledWith('tenant-test', 25); + expect(component.transferValidationStatus()).toBe('error'); + expect(cartServiceStub.clearCart).not.toHaveBeenCalled(); + expect(routerStub.navigate).not.toHaveBeenCalled(); + }, + ); - it('navigates after a transfer is confirmed as paid', async () => { + it('submits a paid transfer and navigates to its confirmation page', async () => { checkoutServiceStub.submitPurchaseForReview.mockResolvedValue({ status: 'paid' }); const { component } = createComponent(); component.selectedPaymentMethod.set('transfer'); await component.onComplete(); + expect(checkoutServiceStub.submitPurchaseForReview).toHaveBeenCalledWith('tenant-test', 25); expect(cartServiceStub.clearCart).not.toHaveBeenCalled(); expect(routerStub.navigate).toHaveBeenCalledWith(['/checkout/status', 25]); }); diff --git a/src/app/features/store/pages/checkout-page/checkout-page.component.ts b/src/app/features/store/pages/checkout-page/checkout-page.component.ts index d802a94..21db68e 100644 --- a/src/app/features/store/pages/checkout-page/checkout-page.component.ts +++ b/src/app/features/store/pages/checkout-page/checkout-page.component.ts @@ -443,7 +443,7 @@ export class CheckoutPageComponent implements OnInit, OnDestroy { purchaseId, ); - if (purchase.status === 'in_review' || purchase.status === 'paid') { + if (purchase.status === 'paid') { this.navigateToPurchaseStatus(purchaseId); return; }