Skip to content

Commit b97771a

Browse files
W-19799923: Addressing comments, adding test cases
1 parent 305d576 commit b97771a

File tree

2 files changed

+50
-5
lines changed

2 files changed

+50
-5
lines changed

packages/template-retail-react-app/app/pages/checkout/confirmation.jsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import CartItemVariantAttributes from '@salesforce/retail-react-app/app/componen
4444
import CartItemVariantPrice from '@salesforce/retail-react-app/app/components/item-variant/item-price'
4545
import MultiShipOrderSummary from '@salesforce/retail-react-app/app/components/multiship/multiship-order-summary'
4646
import ShipmentDetails from '@salesforce/retail-react-app/app/pages/checkout/partials/shipment-details'
47+
import SFPaymentsOrderSummary from '@salesforce/retail-react-app/app/pages/checkout/partials/sf-payments-order-summary'
4748

4849
// Hooks
4950
import useNavigation from '@salesforce/retail-react-app/app/hooks/use-navigation'
@@ -508,7 +509,13 @@ const CheckoutConfirmation = () => {
508509
</Stack>
509510

510511
{order.paymentInstruments[0].paymentMethodId ===
511-
'Salesforce Payments' ? null : (
512+
'Salesforce Payments' ? (
513+
order.paymentInstruments[0].c_paymentReference_type ? (
514+
<SFPaymentsOrderSummary
515+
paymentInstrument={order.paymentInstruments[0]}
516+
/>
517+
) : null
518+
) : (
512519
<Stack spacing={1}>
513520
<Heading as="h3" fontSize="sm">
514521
<FormattedMessage

packages/template-retail-react-app/app/pages/checkout/confirmation.test.js

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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: /credit card/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: /credit card/i})).toBeInTheDocument()
374+
expect(screen.getByText('Visa')).toBeInTheDocument()
375+
expect(screen.getByText(/4242/)).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

Comments
 (0)