@@ -20,8 +20,7 @@ const mockUseOrder = jest.fn()
2020const mockUpdatePaymentInstrumentForOrder = jest . fn ( )
2121const mockFailOrder = jest . fn ( )
2222const mockGetSFPaymentsInstrument = jest . fn ( )
23- const mockGetOrder = jest . fn ( )
24- const mockGetTokenWhenReady = jest . fn ( )
23+ const mockRefetchOrder = jest . fn ( )
2524const mockInvalidateQueries = jest . fn ( )
2625
2726jest . mock ( '@salesforce/retail-react-app/app/hooks/use-navigation' , ( ) => ( {
@@ -43,14 +42,6 @@ jest.mock('@salesforce/commerce-sdk-react', () => {
4342 const actual = jest . requireActual ( '@salesforce/commerce-sdk-react' )
4443 return {
4544 ...actual ,
46- useCommerceApi : ( ) => ( {
47- shopperOrders : {
48- getOrder : mockGetOrder
49- }
50- } ) ,
51- useAccessToken : ( ) => ( {
52- getTokenWhenReady : mockGetTokenWhenReady
53- } ) ,
5445 useShopperOrdersMutation : ( mutationKey ) => {
5546 if ( mutationKey === 'updatePaymentInstrumentForOrder' ) {
5647 return { mutateAsync : mockUpdatePaymentInstrumentForOrder }
@@ -104,16 +95,18 @@ describe('PaymentProcessing', () => {
10495
10596 mockUseOrder . mockReturnValue ( {
10697 data : {
107- orderNo : '12345'
108- }
98+ orderNo : '12345' ,
99+ status : 'created'
100+ } ,
101+ refetch : mockRefetchOrder
102+ } )
103+ mockRefetchOrder . mockResolvedValue ( {
104+ data : { orderNo : '12345' , status : 'created' }
109105 } )
110106
111107 mockUpdatePaymentInstrumentForOrder . mockReturnValue ( { } )
112108
113109 mockGetSFPaymentsInstrument . mockReturnValue ( { } )
114-
115- mockGetOrder . mockResolvedValue ( { status : 'created' } )
116- mockGetTokenWhenReady . mockResolvedValue ( 'token' )
117110 } )
118111
119112 afterEach ( ( ) => {
@@ -220,6 +213,13 @@ describe('PaymentProcessing', () => {
220213
221214 test ( 'renders error message for invalid Adyen URL missing type' , async ( ) => {
222215 mockLocation . search = '?vendor=Adyen&orderNo=12345&zoneId=default&redirectResult=ABC123'
216+ mockUseOrder . mockReturnValue ( {
217+ data : { orderNo : '12345' } ,
218+ refetch : mockRefetchOrder
219+ } )
220+ mockRefetchOrder . mockResolvedValue ( {
221+ data : { orderNo : '12345' , status : 'created' }
222+ } )
223223
224224 renderWithProviders ( < PaymentProcessing /> )
225225
@@ -229,7 +229,7 @@ describe('PaymentProcessing', () => {
229229 expect ( screen . getByText ( 'Return to Checkout' ) ) . toBeInTheDocument ( )
230230
231231 await waitFor ( ( ) => {
232- expect ( mockGetOrder ) . toHaveBeenCalled ( )
232+ expect ( mockRefetchOrder ) . toHaveBeenCalled ( )
233233 expect ( mockFailOrder ) . toHaveBeenCalledTimes ( 1 )
234234 expect ( mockFailOrder ) . toHaveBeenCalledWith ( {
235235 parameters : {
@@ -245,6 +245,13 @@ describe('PaymentProcessing', () => {
245245
246246 test ( 'renders error message for invalid Adyen URL missing zone id' , async ( ) => {
247247 mockLocation . search = '?vendor=Adyen&orderNo=12345&type=klarna&redirectResult=ABC123'
248+ mockUseOrder . mockReturnValue ( {
249+ data : { orderNo : '12345' } ,
250+ refetch : mockRefetchOrder
251+ } )
252+ mockRefetchOrder . mockResolvedValue ( {
253+ data : { orderNo : '12345' , status : 'created' }
254+ } )
248255
249256 renderWithProviders ( < PaymentProcessing /> )
250257
@@ -254,7 +261,7 @@ describe('PaymentProcessing', () => {
254261 expect ( screen . getByText ( 'Return to Checkout' ) ) . toBeInTheDocument ( )
255262
256263 await waitFor ( ( ) => {
257- expect ( mockGetOrder ) . toHaveBeenCalled ( )
264+ expect ( mockRefetchOrder ) . toHaveBeenCalled ( )
258265 expect ( mockFailOrder ) . toHaveBeenCalledTimes ( 1 )
259266 expect ( mockFailOrder ) . toHaveBeenCalledWith ( {
260267 parameters : {
@@ -270,6 +277,13 @@ describe('PaymentProcessing', () => {
270277
271278 test ( 'renders error message for invalid Adyen URL missing redirect result' , async ( ) => {
272279 mockLocation . search = '?vendor=Adyen&orderNo=12345&type=klarna&zoneId=default'
280+ mockUseOrder . mockReturnValue ( {
281+ data : { orderNo : '12345' } ,
282+ refetch : mockRefetchOrder
283+ } )
284+ mockRefetchOrder . mockResolvedValue ( {
285+ data : { orderNo : '12345' , status : 'created' }
286+ } )
273287
274288 renderWithProviders ( < PaymentProcessing /> )
275289
@@ -279,7 +293,7 @@ describe('PaymentProcessing', () => {
279293 expect ( screen . getByText ( 'Return to Checkout' ) ) . toBeInTheDocument ( )
280294
281295 await waitFor ( ( ) => {
282- expect ( mockGetOrder ) . toHaveBeenCalled ( )
296+ expect ( mockRefetchOrder ) . toHaveBeenCalled ( )
283297 expect ( mockFailOrder ) . toHaveBeenCalledTimes ( 1 )
284298 expect ( mockFailOrder ) . toHaveBeenCalledWith ( {
285299 parameters : {
@@ -419,6 +433,9 @@ describe('PaymentProcessing', () => {
419433
420434 test ( 'shows toast and calls failOrder before navigating on failed payment' , async ( ) => {
421435 mockHandleRedirect . mockResolvedValue ( { responseCode : 1 } )
436+ mockRefetchOrder . mockResolvedValue ( {
437+ data : { orderNo : '12345' , status : 'created' }
438+ } )
422439
423440 renderWithProviders ( < PaymentProcessing /> )
424441
@@ -427,7 +444,7 @@ describe('PaymentProcessing', () => {
427444 } )
428445
429446 await waitFor ( ( ) => {
430- expect ( mockGetOrder ) . toHaveBeenCalled ( )
447+ expect ( mockRefetchOrder ) . toHaveBeenCalled ( )
431448 expect ( mockFailOrder ) . toHaveBeenCalledTimes ( 1 )
432449 expect ( mockFailOrder ) . toHaveBeenCalledWith ( {
433450 parameters : {
@@ -445,7 +462,9 @@ describe('PaymentProcessing', () => {
445462
446463 test ( 'does not call failOrder when order already failed by webhook' , async ( ) => {
447464 mockHandleRedirect . mockResolvedValue ( { responseCode : 1 } )
448- mockGetOrder . mockResolvedValue ( { status : 'failed' } )
465+ mockRefetchOrder . mockResolvedValue ( {
466+ data : { orderNo : '12345' , status : 'failed' }
467+ } )
449468
450469 renderWithProviders ( < PaymentProcessing /> )
451470
@@ -454,13 +473,15 @@ describe('PaymentProcessing', () => {
454473 expect ( mockNavigate ) . toHaveBeenCalledWith ( '/checkout' )
455474 } )
456475
457- expect ( mockGetOrder ) . toHaveBeenCalled ( )
476+ expect ( mockRefetchOrder ) . toHaveBeenCalled ( )
458477 expect ( mockFailOrder ) . not . toHaveBeenCalled ( )
459478 } )
460479
461480 test ( 'shows toast and navigates to checkout when failOrder fails' , async ( ) => {
462481 mockHandleRedirect . mockResolvedValue ( { responseCode : 1 } )
463- mockGetOrder . mockResolvedValue ( { status : 'created' } )
482+ mockRefetchOrder . mockResolvedValue ( {
483+ data : { orderNo : '12345' , status : 'created' }
484+ } )
464485 mockFailOrder . mockRejectedValue ( new Error ( 'Order already failed' ) )
465486
466487 renderWithProviders ( < PaymentProcessing /> )
@@ -470,7 +491,7 @@ describe('PaymentProcessing', () => {
470491 expect ( mockNavigate ) . toHaveBeenCalledWith ( '/checkout' )
471492 } )
472493
473- expect ( mockGetOrder ) . toHaveBeenCalled ( )
494+ expect ( mockRefetchOrder ) . toHaveBeenCalled ( )
474495 expect ( mockFailOrder ) . toHaveBeenCalledTimes ( 1 )
475496 expect ( mockInvalidateQueries ) . toHaveBeenCalled ( )
476497 } )
@@ -481,8 +502,13 @@ describe('PaymentProcessing', () => {
481502 for ( const code of errorCodes ) {
482503 jest . clearAllMocks ( )
483504 mockHandleRedirect . mockResolvedValue ( { responseCode : code } )
484- mockGetOrder . mockResolvedValue ( { status : 'created' } )
485- mockGetTokenWhenReady . mockResolvedValue ( 'token' )
505+ mockUseOrder . mockReturnValue ( {
506+ data : { orderNo : '12345' , status : 'created' } ,
507+ refetch : mockRefetchOrder
508+ } )
509+ mockRefetchOrder . mockResolvedValue ( {
510+ data : { orderNo : '12345' , status : 'created' }
511+ } )
486512
487513 renderWithProviders ( < PaymentProcessing /> )
488514
@@ -607,14 +633,18 @@ describe('PaymentProcessing', () => {
607633 } )
608634
609635 test ( 'shows toast and calls failOrder before navigating on failed payment' , async ( ) => {
636+ mockRefetchOrder . mockResolvedValue ( {
637+ data : { orderNo : '12345' , status : 'created' }
638+ } )
639+
610640 renderWithProviders ( < PaymentProcessing /> )
611641
612642 await waitFor ( ( ) => {
613643 expect ( mockToast ) . toHaveBeenCalled ( )
614644 } )
615645
616646 await waitFor ( ( ) => {
617- expect ( mockGetOrder ) . toHaveBeenCalled ( )
647+ expect ( mockRefetchOrder ) . toHaveBeenCalled ( )
618648 expect ( mockFailOrder ) . toHaveBeenCalledTimes ( 1 )
619649 expect ( mockFailOrder ) . toHaveBeenCalledWith ( {
620650 parameters : {
0 commit comments