From 4cf1e54fea1658c5d7ea0f1e314cd9daa77534b2 Mon Sep 17 00:00:00 2001 From: antoniof Date: Wed, 6 Dec 2023 15:40:43 +0100 Subject: [PATCH] refactor: rename onOrderCreated to onOrderUpdated --- .../e2e-playwright/app/src/pages/ANCV/ANCV.js | 2 +- .../e2e-playwright/tests/ancv/ancv.spec.ts | 2 +- .../GiftCardsSessions/GiftCardsSessions.js | 4 ++-- .../onOrderUpdated.clientScripts.js} | 0 .../onOrderUpdated.mocks.js} | 0 .../onOrderUpdated.test.js} | 0 .../onRequiringConfirmation.mocks.js | 2 +- packages/lib/src/components/ANCV/types.ts | 2 +- packages/lib/src/components/Giftcard/types.ts | 2 +- .../internal/UIElement/UIElement.tsx | 5 ++--- .../components/internal/UIElement/types.ts | 2 +- packages/lib/src/core/config.ts | 2 +- packages/lib/src/core/types.ts | 11 +++++++---- packages/lib/src/types/global-types.ts | 5 ++--- .../playground/src/pages/Dropin/manual.js | 19 ++++++++++++++++--- .../src/pages/GiftCards/GiftCards.js | 4 ++-- packages/playground/src/services.js | 6 +++++- 17 files changed, 43 insertions(+), 25 deletions(-) rename packages/e2e/tests/giftcards/{onOrderCreated/onOrderCreated.clientScripts.js => onOrderUpdated/onOrderUpdated.clientScripts.js} (100%) rename packages/e2e/tests/giftcards/{onOrderCreated/onOrderCreated.mocks.js => onOrderUpdated/onOrderUpdated.mocks.js} (100%) rename packages/e2e/tests/giftcards/{onOrderCreated/onOrderCreated.test.js => onOrderUpdated/onOrderUpdated.test.js} (100%) diff --git a/packages/e2e-playwright/app/src/pages/ANCV/ANCV.js b/packages/e2e-playwright/app/src/pages/ANCV/ANCV.js index a43bcff1d5..5c0c7df19e 100644 --- a/packages/e2e-playwright/app/src/pages/ANCV/ANCV.js +++ b/packages/e2e-playwright/app/src/pages/ANCV/ANCV.js @@ -27,7 +27,7 @@ const initCheckout = async () => { locale: shopperLocale, countryCode, showPayButton: true, - onOrderCreated: data => { + onOrderUpdated: data => { showAuthorised('Partially Authorised'); }, onError: handleError diff --git a/packages/e2e-playwright/tests/ancv/ancv.spec.ts b/packages/e2e-playwright/tests/ancv/ancv.spec.ts index bdc56da0d8..a806f52949 100644 --- a/packages/e2e-playwright/tests/ancv/ancv.spec.ts +++ b/packages/e2e-playwright/tests/ancv/ancv.spec.ts @@ -11,7 +11,7 @@ import { setupMock } from '../../mocks/setup/setup.mock'; import { statusMock } from '../../mocks/status/status.mock'; test.describe('ANCV - Sessions', () => { - test('should call onOrderCreated when payment is partially authorised (Sessions flow)', async ({ ancvPage }) => { + test('should call onOrderUpdated when payment is partially authorised (Sessions flow)', async ({ ancvPage }) => { const { ancv, page } = ancvPage; await createOrderMock(page, orderCreatedMockData); diff --git a/packages/e2e/app/src/pages/GiftCardsSessions/GiftCardsSessions.js b/packages/e2e/app/src/pages/GiftCardsSessions/GiftCardsSessions.js index f6c12f812f..796980bfa1 100644 --- a/packages/e2e/app/src/pages/GiftCardsSessions/GiftCardsSessions.js +++ b/packages/e2e/app/src/pages/GiftCardsSessions/GiftCardsSessions.js @@ -37,8 +37,8 @@ const initCheckout = async () => { core: window.sessionCheckout, type: 'giftcard', brand: 'valuelink', - onOrderCreated: data => { - window.onOrderCreatedTestData = data; + onOrderUpdated: data => { + window.onOrderUpdatedTestData = data; }, onRequiringConfirmation: () => { window.onRequiringConfirmationTestData = true; diff --git a/packages/e2e/tests/giftcards/onOrderCreated/onOrderCreated.clientScripts.js b/packages/e2e/tests/giftcards/onOrderUpdated/onOrderUpdated.clientScripts.js similarity index 100% rename from packages/e2e/tests/giftcards/onOrderCreated/onOrderCreated.clientScripts.js rename to packages/e2e/tests/giftcards/onOrderUpdated/onOrderUpdated.clientScripts.js diff --git a/packages/e2e/tests/giftcards/onOrderCreated/onOrderCreated.mocks.js b/packages/e2e/tests/giftcards/onOrderUpdated/onOrderUpdated.mocks.js similarity index 100% rename from packages/e2e/tests/giftcards/onOrderCreated/onOrderCreated.mocks.js rename to packages/e2e/tests/giftcards/onOrderUpdated/onOrderUpdated.mocks.js diff --git a/packages/e2e/tests/giftcards/onOrderCreated/onOrderCreated.test.js b/packages/e2e/tests/giftcards/onOrderUpdated/onOrderUpdated.test.js similarity index 100% rename from packages/e2e/tests/giftcards/onOrderCreated/onOrderCreated.test.js rename to packages/e2e/tests/giftcards/onOrderUpdated/onOrderUpdated.test.js diff --git a/packages/e2e/tests/giftcards/onRequiringConfirmation/onRequiringConfirmation.mocks.js b/packages/e2e/tests/giftcards/onRequiringConfirmation/onRequiringConfirmation.mocks.js index 2cdf353281..28daf29ae5 100644 --- a/packages/e2e/tests/giftcards/onRequiringConfirmation/onRequiringConfirmation.mocks.js +++ b/packages/e2e/tests/giftcards/onRequiringConfirmation/onRequiringConfirmation.mocks.js @@ -1,7 +1,7 @@ import { RequestMock, RequestLogger } from 'testcafe'; import { BASE_URL } from '../../pages'; -import { mock, loggers } from '../onOrderCreated/onOrderCreated.mocks'; +import { mock, loggers } from '../onOrderUpdated/onOrderUpdated.mocks'; const path = require('path'); require('dotenv').config({ path: path.resolve('../../', '.env') }); diff --git a/packages/lib/src/components/ANCV/types.ts b/packages/lib/src/components/ANCV/types.ts index a500dfd92d..4621bf55f0 100644 --- a/packages/lib/src/components/ANCV/types.ts +++ b/packages/lib/src/components/ANCV/types.ts @@ -4,7 +4,7 @@ export interface ANCVConfiguration extends UIElementProps { paymentData?: any; data: ANCVDataState; onOrderRequest?: any; - onOrderCreated?: any; + onOrderUpdated?: any; } export interface ANCVDataState { diff --git a/packages/lib/src/components/Giftcard/types.ts b/packages/lib/src/components/Giftcard/types.ts index 36f5c7cf35..f9976e5296 100644 --- a/packages/lib/src/components/Giftcard/types.ts +++ b/packages/lib/src/components/Giftcard/types.ts @@ -17,7 +17,7 @@ export interface GiftCardConfiguration extends UIElementProps { expiryDateRequired?: boolean; brandsConfiguration?: any; brand?: string; - onOrderCreated?(data): void; + onOrderUpdated?(data): void; onOrderRequest?(resolve, reject, data): void; onBalanceCheck?(resolve, reject, data): void; onRequiringConfirmation?(): void; diff --git a/packages/lib/src/components/internal/UIElement/UIElement.tsx b/packages/lib/src/components/internal/UIElement/UIElement.tsx index 277c0362ac..d9cebea2a8 100644 --- a/packages/lib/src/components/internal/UIElement/UIElement.tsx +++ b/packages/lib/src/components/internal/UIElement/UIElement.tsx @@ -296,7 +296,7 @@ export abstract class UIElement

exten : this.core.update({ order }); updateCorePromise.then(() => { - this.props.onOrderCreated?.({ order }); + this.props.onOrderUpdated?.({ order }); }); }; @@ -401,10 +401,9 @@ export abstract class UIElement

exten orderData: order.orderData, pspReference: order.pspReference }, - amount: this.props.amount, locale: this.core.options.locale }; - this.props.onPaymentMethodsRequest(resolve, reject, data); + this.props.onPaymentMethodsRequest(data, { resolve, reject }); }) .then(paymentMethodsResponse => { return this.core.update({ paymentMethodsResponse, order, amount: order.remainingAmount }); diff --git a/packages/lib/src/components/internal/UIElement/types.ts b/packages/lib/src/components/internal/UIElement/types.ts index d4a358f012..d5db40edbb 100644 --- a/packages/lib/src/components/internal/UIElement/types.ts +++ b/packages/lib/src/components/internal/UIElement/types.ts @@ -10,7 +10,7 @@ import { CoreConfiguration, ICore } from '../../../core/types'; export type PayButtonFunctionProps = Omit; // TODO add onPaymentCompleted -type CoreCallbacks = Pick; +type CoreCallbacks = Pick; export type UIElementProps = BaseElementProps & CoreCallbacks & { diff --git a/packages/lib/src/core/config.ts b/packages/lib/src/core/config.ts index 64690d1631..4b2daf6564 100644 --- a/packages/lib/src/core/config.ts +++ b/packages/lib/src/core/config.ts @@ -30,7 +30,7 @@ export const GENERIC_OPTIONS = [ 'onError', 'onBalanceCheck', 'onOrderRequest', - 'onOrderCreated', + 'onOrderUpdated', 'setStatusAutomatically', 'onPaymentMethodsRequest' ]; diff --git a/packages/lib/src/core/types.ts b/packages/lib/src/core/types.ts index 16d8c50258..b4d7b098d9 100644 --- a/packages/lib/src/core/types.ts +++ b/packages/lib/src/core/types.ts @@ -199,16 +199,19 @@ export interface CoreConfiguration { onOrderRequest?(resolve: PromiseResolve, reject: PromiseReject, data: PaymentData): Promise; - onPaymentMethodsRequest?(resolve: (response: PaymentMethodsResponse) => void, reject: () => void, data: PaymentMethodsRequestData): void; + onPaymentMethodsRequest?( + data: PaymentMethodsRequestData, + actions: { resolve: (response: PaymentMethodsResponse) => void; reject: () => void } + ): void; onOrderCancel?(order: Order): void; /** - * Only used in Components combined with Sessions flow - * Callback used to inform when the order is created. + * Called when the gift card balance is less than the transaction amount. + * Returns an Order object that includes the remaining amount to be paid. * https://docs.adyen.com/payment-methods/gift-cards/web-component?tab=config-sessions_1 */ - onOrderCreated?(data: { order: Order }): void; + onOrderUpdated?(data: { order: Order }): void; /** * Used only in the Donation Component when shopper declines to donate diff --git a/packages/lib/src/types/global-types.ts b/packages/lib/src/types/global-types.ts index 8364a7b589..a76289dbb7 100644 --- a/packages/lib/src/types/global-types.ts +++ b/packages/lib/src/types/global-types.ts @@ -344,9 +344,8 @@ export type OnPaymentFailedData = //TODO double check these values export interface PaymentMethodsRequestData { - order: Order; - amount: PaymentAmount; - locale: string; + order?: Order; + locale?: string; countryCode?: string; } diff --git a/packages/playground/src/pages/Dropin/manual.js b/packages/playground/src/pages/Dropin/manual.js index 7690fb50ce..e4744ccc7e 100644 --- a/packages/playground/src/pages/Dropin/manual.js +++ b/packages/playground/src/pages/Dropin/manual.js @@ -1,7 +1,7 @@ import { AdyenCheckout, Dropin, Card, GooglePay, PayPal, Ach, Affirm, WeChat, Giftcard, AmazonPay } from '@adyen/adyen-web'; import '@adyen/adyen-web/styles/adyen.css'; import { getPaymentMethods, makePayment, checkBalance, createOrder, cancelOrder, makeDetailsCall } from '../../services'; -import { amount, shopperLocale, countryCode, returnUrl } from '../../config/commonConfig'; +import { amount, shopperLocale, countryCode } from '../../config/commonConfig'; import { getSearchParameters } from '../../utils'; import getTranslationFile from '../../config/getTranslation'; @@ -102,20 +102,33 @@ export async function initManual() { } }, onBalanceCheck: async (resolve, reject, data) => { + console.log('onBalanceCheck', data); resolve(await checkBalance(data)); }, - onOrderRequest: async (resolve, reject) => { + onOrderRequest: async resolve => { + console.log('onOrderRequested'); resolve(await createOrder({ amount })); }, + onOrderUpdated: data => { + console.log('onOrderUpdated', data); + }, onOrderCancel: async order => { await cancelOrder(order); - checkout.update({ paymentMethodsResponse: await getPaymentMethods({ amount, shopperLocale }), order: null, amount }); + checkout.update({ + paymentMethodsResponse: await getPaymentMethods({ amount, shopperLocale }), + order: null, + amount + }); }, onError: (error, component) => { console.info(error.name, error.message, error.stack, component); }, onActionHandled: rtnObj => { console.log('onActionHandled', rtnObj); + }, + onPaymentMethodsRequest: async (data, { resolve, reject }) => { + console.log('onPaymentMethodsRequest', data); + resolve(await getPaymentMethods({ amount, shopperLocale: data.locale, order: data.order })); } }); diff --git a/packages/playground/src/pages/GiftCards/GiftCards.js b/packages/playground/src/pages/GiftCards/GiftCards.js index 2ecd10d1b7..4ea568be34 100644 --- a/packages/playground/src/pages/GiftCards/GiftCards.js +++ b/packages/playground/src/pages/GiftCards/GiftCards.js @@ -96,8 +96,8 @@ import getTranslationFile from '../../config/getTranslation'; core: sessionCheckout, type: 'giftcard', brand: 'svs', - onOrderCreated: () => { - console.log('onOrderCreated'); + onOrderUpdated: () => { + console.log('onOrderUpdated'); }, onRequiringConfirmation: () => { console.log('onRequiringConfirmation'); diff --git a/packages/playground/src/services.js b/packages/playground/src/services.js index 340b8eac9a..0ba6dd2554 100644 --- a/packages/playground/src/services.js +++ b/packages/playground/src/services.js @@ -54,7 +54,11 @@ export const getOriginKey = (originKeyOrigin = document.location.origin) => httpPost('originKeys', { originDomains: [originKeyOrigin] }).then(response => response.originKeys[originKeyOrigin]); export const checkBalance = data => { - return httpPost('paymentMethods/balance', data) + const payload = { + ...data, + amount: paymentMethodsConfig.amount + }; + return httpPost('paymentMethods/balance', payload) .then(response => { if (response.error) throw 'Balance call failed'; return response;