refactor: update payment validation logic to handle transfer statuses more effectively
This commit is contained in:
@@ -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]);
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user