From 2b1c9a14df03507d896f4e6cdd14162ef0f0ae63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricard=20Sol=C3=A9?= <3116474+iamricard@users.noreply.github.com> Date: Tue, 15 Dec 2020 10:35:34 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#49661=20fix(braint?= =?UTF-8?q?ree-web-drop-in):=20extends=20definition=20further=20by=20@iamr?= =?UTF-8?q?icard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I added some simple definitions of the three-d-secure options. I also ran `npm run prettier types/braintree-web-drop-in/**/*.ts -- -w`. --- types/braintree-web-drop-in/index.d.ts | 16 ++++- .../test/braintree-web-drop-in-global.test.ts | 58 +++++++++--------- .../test/braintree-web-drop-in-module.test.ts | 60 +++++++++---------- 3 files changed, 73 insertions(+), 61 deletions(-) diff --git a/types/braintree-web-drop-in/index.d.ts b/types/braintree-web-drop-in/index.d.ts index e317fe5c9e..d8e130faaf 100644 --- a/types/braintree-web-drop-in/index.d.ts +++ b/types/braintree-web-drop-in/index.d.ts @@ -121,13 +121,25 @@ export interface Dropin { off(event: 'noPaymentMethodRequestable', handler: () => void): void; off(event: 'paymentMethodRequestable', handler: (payload: PaymentMethodRequestablePayload) => void): void; off(event: 'paymentOptionSelected', handler: (payload: PaymentOptionSelectedPayload) => void): void; - requestPaymentMethod(options: object, callback: RequestPaymentMethodCallback): void; + requestPaymentMethod(options: PaymentMethodOptions, callback: RequestPaymentMethodCallback): void; requestPaymentMethod(callback: RequestPaymentMethodCallback): void; - requestPaymentMethod(): Promise; + requestPaymentMethod(options?: PaymentMethodOptions): Promise; teardown(callback: (error: object | null | undefined) => void): void; teardown(): Promise; } +export interface PaymentMethodOptions { + threeDSecure: { + amount: string; + challengeRequested?: boolean; + exemptionRequested?: boolean; + email?: string; + mobilePhoneNumber?: string; + billingAddress?: object; + additionalInformation?: object; + }; +} + export type RequestPaymentMethodCallback = (error: object | null, payload: PaymentMethodPayload) => void; export type PaymentMethodPayload = diff --git a/types/braintree-web-drop-in/test/braintree-web-drop-in-global.test.ts b/types/braintree-web-drop-in/test/braintree-web-drop-in-global.test.ts index 6d4744ef85..031cdc76f2 100644 --- a/types/braintree-web-drop-in/test/braintree-web-drop-in-global.test.ts +++ b/types/braintree-web-drop-in/test/braintree-web-drop-in-global.test.ts @@ -5,7 +5,7 @@ import { cardPaymentMethodPayload, } from 'braintree-web-drop-in'; -braintree.dropin.create({ authorization: "", container: "my-div" }, (error, myDropin) => { +braintree.dropin.create({ authorization: '', container: 'my-div' }, (error, myDropin) => { if (error) { return; } @@ -16,11 +16,11 @@ braintree.dropin.create({ authorization: "", container: "my-div" }, (error, myDr (async () => { const myDropin = await braintree.dropin.create({ - authorization: "", - container: "my-div", - locale: "en-US", + authorization: '', + container: 'my-div', + locale: 'en-US', translations: {}, - paymentOptionPriority: ["card", "paypal", "paypalCredit", "venmo", "applePay"], + paymentOptionPriority: ['card', 'paypal', 'paypalCredit', 'venmo', 'applePay'], card: { cardholderName: { required: false, @@ -36,9 +36,9 @@ braintree.dropin.create({ authorization: "", container: "my-div" }, (error, myDr }, }, paypal: { - flow: "checkout", + flow: 'checkout', amount: 1, - currency: "USD", + currency: 'USD', buttonStyle: {}, commit: false, }, @@ -47,34 +47,34 @@ braintree.dropin.create({ authorization: "", container: "my-div" }, (error, myDr allowNewBrowserTab: false, }, applePay: { - buttonStyle: "white-outline", - displayName: "name", + buttonStyle: 'white-outline', + displayName: 'name', applePaySessionVersion: 1, paymentRequest: { - countryCode: "US", - currencyCode: "USD", - supportedNetworks: ["visa", "masterCard"], - merchantCapabilities: ["supports3DS"], - total: { label: "Your Label", amount: "10.00" }, + countryCode: 'US', + currencyCode: 'USD', + supportedNetworks: ['visa', 'masterCard'], + merchantCapabilities: ['supports3DS'], + total: { label: 'Your Label', amount: '10.00' }, }, }, googlePay: { - merchantId: "", - googlePayVersion: "", + merchantId: '', + googlePayVersion: '', transactionInfo: { - currencyCode: "USD", - totalPriceStatus: "FINAL", - totalPrice: "100.00", + currencyCode: 'USD', + totalPriceStatus: 'FINAL', + totalPrice: '100.00', }, button: { - onClick: (event) => {} + onClick: event => {}, }, }, dataCollector: { kount: false, }, threeDSecure: { - amount: "1", + amount: '1', }, vaultManager: false, preselectVaultedPaymentMethod: false, @@ -87,20 +87,20 @@ braintree.dropin.create({ authorization: "", container: "my-div" }, (error, myDr return; } function onPaymentMethodRequestable({ type, paymentMethodIsSelected }: PaymentMethodRequestablePayload) { - const myType: "CreditCard" | "PayPalAccount" = type; + const myType: 'CreditCard' | 'PayPalAccount' = type; const myBool: boolean = paymentMethodIsSelected; } function onPaymentOptionSelected({ paymentOption }: PaymentOptionSelectedPayload) { - const myPaymentOption: "card" | "paypal" | "paypalCredit" = paymentOption; + const myPaymentOption: 'card' | 'paypal' | 'paypalCredit' = paymentOption; } - myDropin.on("noPaymentMethodRequestable", onNoPaymentMethodRequestable); - myDropin.on("paymentMethodRequestable", onPaymentMethodRequestable); - myDropin.on("paymentOptionSelected", onPaymentOptionSelected); + myDropin.on('noPaymentMethodRequestable', onNoPaymentMethodRequestable); + myDropin.on('paymentMethodRequestable', onPaymentMethodRequestable); + myDropin.on('paymentOptionSelected', onPaymentOptionSelected); - myDropin.off("noPaymentMethodRequestable", onNoPaymentMethodRequestable); - myDropin.off("paymentMethodRequestable", onPaymentMethodRequestable); - myDropin.off("paymentOptionSelected", onPaymentOptionSelected); + myDropin.off('noPaymentMethodRequestable', onNoPaymentMethodRequestable); + myDropin.off('paymentMethodRequestable', onPaymentMethodRequestable); + myDropin.off('paymentOptionSelected', onPaymentOptionSelected); myDropin.requestPaymentMethod((error, payload) => { if (error) { diff --git a/types/braintree-web-drop-in/test/braintree-web-drop-in-module.test.ts b/types/braintree-web-drop-in/test/braintree-web-drop-in-module.test.ts index a38f218ea8..4f4e0a61e3 100644 --- a/types/braintree-web-drop-in/test/braintree-web-drop-in-module.test.ts +++ b/types/braintree-web-drop-in/test/braintree-web-drop-in-module.test.ts @@ -1,6 +1,6 @@ -import * as dropin from "braintree-web-drop-in"; +import * as dropin from 'braintree-web-drop-in'; -dropin.create({ authorization: "", container: "my-div" }, (error, myDropin) => { +dropin.create({ authorization: '', container: 'my-div' }, (error, myDropin) => { if (error) { return; } @@ -11,11 +11,11 @@ dropin.create({ authorization: "", container: "my-div" }, (error, myDropin) => { (async () => { const myOptions: dropin.Options = { - authorization: "", - container: "my-div", - locale: "en-US", + authorization: '', + container: 'my-div', + locale: 'en-US', translations: {}, - paymentOptionPriority: ["card", "paypal", "paypalCredit", "venmo", "applePay"], + paymentOptionPriority: ['card', 'paypal', 'paypalCredit', 'venmo', 'applePay'], card: { cardholderName: { required: false, @@ -31,9 +31,9 @@ dropin.create({ authorization: "", container: "my-div" }, (error, myDropin) => { }, }, paypal: { - flow: "checkout", + flow: 'checkout', amount: 1, - currency: "USD", + currency: 'USD', buttonStyle: {}, commit: false, }, @@ -42,34 +42,34 @@ dropin.create({ authorization: "", container: "my-div" }, (error, myDropin) => { allowNewBrowserTab: false, }, applePay: { - buttonStyle: "white-outline", - displayName: "name", + buttonStyle: 'white-outline', + displayName: 'name', applePaySessionVersion: 1, paymentRequest: { - countryCode: "US", - currencyCode: "USD", - supportedNetworks: ["visa", "masterCard"], - merchantCapabilities: ["supports3DS"], - total: { label: "Your Label", amount: "10.00" }, + countryCode: 'US', + currencyCode: 'USD', + supportedNetworks: ['visa', 'masterCard'], + merchantCapabilities: ['supports3DS'], + total: { label: 'Your Label', amount: '10.00' }, }, }, googlePay: { - merchantId: "", - googlePayVersion: "", + merchantId: '', + googlePayVersion: '', transactionInfo: { - currencyCode: "USD", - totalPriceStatus: "FINAL", - totalPrice: "100.00", + currencyCode: 'USD', + totalPriceStatus: 'FINAL', + totalPrice: '100.00', }, button: { - onClick: (event) => {} + onClick: event => {}, }, }, dataCollector: { kount: false, }, threeDSecure: { - amount: "1", + amount: '1', }, vaultManager: false, preselectVaultedPaymentMethod: false, @@ -83,20 +83,20 @@ dropin.create({ authorization: "", container: "my-div" }, (error, myDropin) => { return; } function onPaymentMethodRequestable({ type, paymentMethodIsSelected }: dropin.PaymentMethodRequestablePayload) { - const myType: "CreditCard" | "PayPalAccount" = type; + const myType: 'CreditCard' | 'PayPalAccount' = type; const myBool: boolean = paymentMethodIsSelected; } function onPaymentOptionSelected({ paymentOption }: dropin.PaymentOptionSelectedPayload) { - const myPaymentOption: "card" | "paypal" | "paypalCredit" = paymentOption; + const myPaymentOption: 'card' | 'paypal' | 'paypalCredit' = paymentOption; } - myDropin.on("noPaymentMethodRequestable", onNoPaymentMethodRequestable); - myDropin.on("paymentMethodRequestable", onPaymentMethodRequestable); - myDropin.on("paymentOptionSelected", onPaymentOptionSelected); + myDropin.on('noPaymentMethodRequestable', onNoPaymentMethodRequestable); + myDropin.on('paymentMethodRequestable', onPaymentMethodRequestable); + myDropin.on('paymentOptionSelected', onPaymentOptionSelected); - myDropin.off("noPaymentMethodRequestable", onNoPaymentMethodRequestable); - myDropin.off("paymentMethodRequestable", onPaymentMethodRequestable); - myDropin.off("paymentOptionSelected", onPaymentOptionSelected); + myDropin.off('noPaymentMethodRequestable', onNoPaymentMethodRequestable); + myDropin.off('paymentMethodRequestable', onPaymentMethodRequestable); + myDropin.off('paymentOptionSelected', onPaymentOptionSelected); myDropin.requestPaymentMethod((error, payload) => { if (error) {