@@ -323,27 +323,65 @@ describe('Salesforce Payments Integration', () => {
323323 ]
324324 }
325325
326- beforeEach ( ( ) => {
326+ const mockSFPaymentsOrderWithType = {
327+ ...mockOrder ,
328+ paymentInstruments : [
329+ {
330+ amount : 82.56 ,
331+ paymentInstrumentId : 'sfp123' ,
332+ paymentMethodId : 'Salesforce Payments' ,
333+ c_paymentReference_type : 'card' ,
334+ c_paymentReference_brand : 'visa' ,
335+ c_paymentReference_last4 : '4242'
336+ }
337+ ]
338+ }
339+
340+ test ( 'does not render payment details for Salesforce Payments orders when c_paymentReference_type is missing' , async ( ) => {
327341 global . server . use (
328342 rest . get ( '*/orders/:orderId' , ( req , res , ctx ) => {
329343 return res ( ctx . delay ( 0 ) , ctx . json ( mockSFPaymentsOrder ) )
330344 } )
331345 )
332- } )
333346
334- test ( 'does not render payment details for Salesforce Payments orders' , async ( ) => {
335347 renderWithProviders ( < MockedComponent /> )
336348
337349 await screen . findByText ( mockSFPaymentsOrder . orderNo )
338350
339351 // Payment Details section should exist
340352 expect ( screen . getByText ( 'Payment Details' ) ) . toBeInTheDocument ( )
341353
342- // No payment method details should be shown for SFP orders
354+ // No payment method details should be shown for SFP orders when c_paymentReference_type is missing
343355 expect ( screen . queryByRole ( 'heading' , { name : / c r e d i t c a r d / i} ) ) . not . toBeInTheDocument ( )
344356 } )
345357
358+ test ( 'renders SFPaymentsOrderSummary for Salesforce Payments orders when c_paymentReference_type exists' , async ( ) => {
359+ global . server . use (
360+ rest . get ( '*/orders/:orderId' , ( req , res , ctx ) => {
361+ return res ( ctx . delay ( 0 ) , ctx . json ( mockSFPaymentsOrderWithType ) )
362+ } )
363+ )
364+
365+ renderWithProviders ( < MockedComponent /> )
366+
367+ await screen . findByText ( mockSFPaymentsOrderWithType . orderNo )
368+
369+ // Payment Details section should exist
370+ expect ( screen . getByText ( 'Payment Details' ) ) . toBeInTheDocument ( )
371+
372+ // SFPaymentsOrderSummary should render when c_paymentReference_type is available
373+ expect ( await screen . findByRole ( 'heading' , { name : / c r e d i t c a r d / i} ) ) . toBeInTheDocument ( )
374+ expect ( screen . getByText ( 'Visa' ) ) . toBeInTheDocument ( )
375+ expect ( screen . getByText ( / 4 2 4 2 / ) ) . toBeInTheDocument ( )
376+ } )
377+
346378 test ( 'renders billing address for Salesforce Payments orders' , async ( ) => {
379+ global . server . use (
380+ rest . get ( '*/orders/:orderId' , ( req , res , ctx ) => {
381+ return res ( ctx . delay ( 0 ) , ctx . json ( mockSFPaymentsOrder ) )
382+ } )
383+ )
384+
347385 renderWithProviders ( < MockedComponent /> )
348386
349387 await screen . findByText ( mockSFPaymentsOrder . orderNo )
0 commit comments