Skip to content

Commit 4060eed

Browse files
jeffraab-sfdcrasbhat
authored andcommitted
Merge pull request #3612 from SalesforceCommerceCloud/jraab/adyen-payment-sheet
@W-20508465: Add support for Adyen payments
2 parents 4bd6444 + 4e05803 commit 4060eed

File tree

9 files changed

+978
-321
lines changed

9 files changed

+978
-321
lines changed

packages/template-retail-react-app/app/constants.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,8 @@ export const PAYMENT_METHOD_TYPES = {
283283

284284
export const PAYMENT_GATEWAYS = {
285285
STRIPE: 'stripe',
286-
ADYEN: 'adyen'
286+
ADYEN: 'adyen',
287+
PAYPAL: 'paypal'
287288
}
288289

289290
export const SETUP_FUTURE_USAGE = {

packages/template-retail-react-app/app/pages/checkout/partials/sf-payments-sheet.events.test.js

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ jest.mock('@salesforce/commerce-sdk-react', () => {
6666
accountId: 'stripe-account-1',
6767
vendor: 'Stripe',
6868
paymentMethods: [{id: 'card'}]
69+
},
70+
{
71+
accountId: 'paypal-account-1',
72+
vendor: 'Paypal',
73+
paymentMethods: [{id: 'paypal'}]
6974
}
7075
]
7176
}
@@ -235,14 +240,18 @@ const setupComponentAndGetPaymentElement = async () => {
235240
return checkoutCall[4]
236241
}
237242

238-
const firePaymentMethodSelectedEvent = async (paymentElement, detail = {}) => {
243+
const firePaymentMethodSelectedEvent = async (
244+
paymentElement,
245+
selectedPaymentMethod = 'card',
246+
detail = {}
247+
) => {
239248
await act(async () => {
240249
paymentElement.dispatchEvent(
241250
new CustomEvent('sfp:paymentmethodselected', {
242251
bubbles: true,
243252
composed: true,
244253
detail: {
245-
selectedPaymentMethod: 'card',
254+
selectedPaymentMethod,
246255
...detail
247256
}
248257
})
@@ -377,7 +386,9 @@ describe('SFPaymentsSheet - SDK Event Handler Tests', () => {
377386
test('handlePaymentButtonApprove includes setupFutureUsage when savePaymentMethodForFutureUse is true', async () => {
378387
const paymentElement = await setupComponentAndGetPaymentElement()
379388

380-
await firePaymentMethodSelectedEvent(paymentElement, {savePaymentMethodForFutureUse: true})
389+
await firePaymentMethodSelectedEvent(paymentElement, 'card', {
390+
savePaymentMethodForFutureUse: true
391+
})
381392
await firePaymentApproveEvent(paymentElement, {savePaymentMethodForFutureUse: true})
382393

383394
await waitFor(
@@ -399,7 +410,9 @@ describe('SFPaymentsSheet - SDK Event Handler Tests', () => {
399410
test('handlePaymentButtonApprove does not include setupFutureUsage when savePaymentMethodForFutureUse is false', async () => {
400411
const paymentElement = await setupComponentAndGetPaymentElement()
401412

402-
await firePaymentMethodSelectedEvent(paymentElement, {savePaymentMethodForFutureUse: false})
413+
await firePaymentMethodSelectedEvent(paymentElement, 'card', {
414+
savePaymentMethodForFutureUse: false
415+
})
403416
await firePaymentApproveEvent(paymentElement, {savePaymentMethodForFutureUse: false})
404417

405418
await waitFor(
@@ -418,7 +431,9 @@ describe('SFPaymentsSheet - SDK Event Handler Tests', () => {
418431
test('handlePaymentButtonApprove includes required fields for PaymentsCustomer record creation', async () => {
419432
const paymentElement = await setupComponentAndGetPaymentElement()
420433

421-
await firePaymentMethodSelectedEvent(paymentElement, {savePaymentMethodForFutureUse: true})
434+
await firePaymentMethodSelectedEvent(paymentElement, 'card', {
435+
savePaymentMethodForFutureUse: true
436+
})
422437
await firePaymentApproveEvent(paymentElement, {savePaymentMethodForFutureUse: true})
423438

424439
await waitFor(
@@ -463,6 +478,10 @@ describe('SFPaymentsSheet - SDK Event Handler Tests', () => {
463478
const checkoutCall = mockCheckout.mock.calls[0]
464479
const config = checkoutCall[2]
465480

481+
await firePaymentMethodSelectedEvent(paymentElement, 'paypal', {
482+
requiresPayButton: false
483+
})
484+
466485
await config.actions.createIntent()
467486

468487
await act(async () => {
@@ -540,7 +559,7 @@ describe('SFPaymentsSheet - SDK Event Handler Tests', () => {
540559
const checkoutCall = mockCheckout.mock.calls[0]
541560
const paymentElement = checkoutCall[4]
542561

543-
await firePaymentMethodSelectedEvent(paymentElement, {requiresPayButton: true})
562+
await firePaymentMethodSelectedEvent(paymentElement, 'card', {requiresPayButton: true})
544563

545564
await waitFor(() => {
546565
expect(mockOnRequiresPayButtonChange).toHaveBeenCalledWith(true)

0 commit comments

Comments
 (0)