@internetarchive/donation-form 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/demo/braintree-endpoint-manager.js.map +1 -1
- package/dist/demo/submit-form-with.js.map +1 -1
- package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-clients.d.ts +0 -2
- package/dist/src/braintree-manager/payment-clients.js +0 -1
- package/dist/src/braintree-manager/payment-clients.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +0 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +0 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js +2 -2
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.d.ts +0 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js +0 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js +2 -2
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay-interface.d.ts +0 -1
- package/dist/src/braintree-manager/payment-providers/google-pay.d.ts +0 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js +3 -3
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo.js +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers.js.map +1 -1
- package/dist/src/donation-form-controller.js +0 -1
- package/dist/src/donation-form-controller.js.map +1 -1
- package/dist/src/donation-form.js +18 -15
- package/dist/src/donation-form.js.map +1 -1
- package/dist/src/form-elements/badged-input.js.map +1 -1
- package/dist/src/form-elements/contact-form/contact-form.js.map +1 -1
- package/dist/src/form-elements/header/donation-form-header.js.map +1 -1
- package/dist/src/form-elements/header/donation-summary.js.map +1 -1
- package/dist/src/form-elements/payment-selector.js +1 -1
- package/dist/src/form-elements/payment-selector.js.map +1 -1
- package/dist/src/form-elements/total-amount.js.map +1 -1
- package/dist/src/modals/confirm-donation-modal-content.js +0 -2
- package/dist/src/modals/confirm-donation-modal-content.js.map +1 -1
- package/dist/src/modals/error-modal-content.js.map +1 -1
- package/dist/src/modals/upsell-modal-content.js.map +1 -1
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js +0 -1
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js +1 -1
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js +1 -1
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js +1 -1
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js +6 -14
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js +1 -1
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js +1 -1
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js.map +1 -1
- package/dist/src/recaptcha-manager/recaptcha-manager.d.ts +0 -1
- package/dist/src/recaptcha-manager/recaptcha-manager.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js +0 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js +1 -1
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js.map +1 -1
- package/dist/test/mocks/mock-braintree-manager.js.map +1 -1
- package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
- package/dist/test/mocks/mock-modal-manager.js +0 -1
- package/dist/test/mocks/mock-modal-manager.js.map +1 -1
- package/dist/test/mocks/mock-payment-clients.d.ts +0 -2
- package/dist/test/mocks/mock-payment-clients.js +0 -1
- package/dist/test/mocks/mock-payment-clients.js.map +1 -1
- package/dist/test/mocks/mock-recaptcha-manager.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-applepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-payment.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-applepay-session.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-applepay-session.js +0 -2
- package/dist/test/mocks/payment-clients/mock-applepay-session.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-data-collector.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-client.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-library.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-grecaptcha.d.ts +0 -1
- package/dist/test/mocks/payment-clients/mock-grecaptcha.js +0 -1
- package/dist/test/mocks/payment-clients/mock-grecaptcha.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.d.ts +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.d.ts +0 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js +2 -2
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js.map +1 -1
- package/dist/test/tests/braintree-manager.test.js +12 -13
- package/dist/test/tests/braintree-manager.test.js.map +1 -1
- package/dist/test/tests/donation-form-controller.test.js +21 -21
- package/dist/test/tests/donation-form.test.js +7 -7
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js +8 -8
- package/dist/test/tests/form-elements/donation-summary.test.js +2 -2
- package/dist/test/tests/form-elements/payment-selector.test.js +8 -8
- package/dist/test/tests/modals/upsell-modal-content.test.js +21 -21
- package/dist/test/tests/models/donation-payment-info.test.js +7 -7
- package/dist/test/tests/models/donation-payment-info.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
- package/dist/test/tests/recaptcha-manager.test.js.map +1 -1
- package/package.json +40 -40
- package/src/braintree-manager/payment-clients.ts +0 -1
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay.ts +0 -1
- package/src/donation-form-controller.ts +0 -1
- package/src/donation-form.ts +9 -6
- package/src/modals/confirm-donation-modal-content.ts +0 -2
- package/src/payment-flow-handlers/donation-flow-modal-manager.ts +0 -1
- package/src/payment-flow-handlers/handlers/paypal-flow-handler.ts +2 -4
- package/src/payment-flow-handlers/payment-flow-handlers.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-applepay-session.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-applepay-session.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"mock-applepay-session.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-applepay-session.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,uDAAuD;AACvD,MAAM,OAAO,mBAAmB;IAO9B,YAAY,OAAgB,EAAE,cAAkD;QAJhF,qCAAgC,GAAG,KAAK,CAAC;QACzC,gBAAW,GAAG,KAAK,CAAC;QAgBpB,aAAQ,GAAsC,CAAC,KAAuB,EAAE,EAAE,GAAE,CAAC,CAAC;QAE9E,wBAAmB,GAA+D,CAChF,KAAgD,EAChD,EAAE,GAAE,CAAC,CAAC;QAER,4BAAuB,GAAmE,CACxF,KAAoD,EACpD,EAAE,GAAE,CAAC,CAAC;QAER,8BAAyB,GAAqE,CAC5F,KAAsD,EACtD,EAAE,GAAE,CAAC,CAAC;QAER,6BAAwB,GAAoE,CAC1F,KAAqD,EACrD,EAAE,GAAE,CAAC,CAAC;QAER,uBAAkB,GAA8D,CAC9E,KAA+C,EAC/C,EAAE,GAAE,CAAC,CAAC;QAhCN,IAAI,CAAC,YAAY,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAe;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAwBD,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,KAAU,CAAC;IAEhB,0BAA0B,CAAC,eAAoB;QAC7C,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC;IAC/C,CAAC;IAED,eAAe,CAAC,MAA8D;QAC5E,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACtC,CAAC;IASD,8BAA8B,CAAC,QAAa,EAAE,YAAkB;QAC9D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IASD,gCAAgC,CAC9B,MAAW,EACX,kBAAwB,EACxB,QAAc,EACd,YAAkB;QAElB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAOD,+BAA+B,CAAC,MAAW,EAAE,QAAc,EAAE,YAAkB;QAC7E,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,gBAAgB,CACd,IAAY,EACZ,QAAoD,EACpD,OAAuD;QAEvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,aAAa,CAAC,KAAY;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,mBAAmB,CACjB,IAAY,EACZ,QAAoD,EACpD,OAAoD;QAEpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport class MockApplePaySession implements ApplePaySession {\n versionCheck: number;\n paymentRequestCheck?: ApplePayJS.ApplePayPaymentRequest;\n completeMerchantValidationCalled = false;\n abortCalled = false;\n completePaymentResult?: number | ApplePayJS.ApplePayPaymentAuthorizationResult;\n\n constructor(version?: number, paymentRequest?: ApplePayJS.ApplePayPaymentRequest) {\n this.versionCheck = version ?? 3;\n this.paymentRequestCheck = paymentRequest;\n }\n\n static canMakePayments(): boolean {\n return true;\n }\n\n static supportsVersion(version: number): boolean {\n return true;\n }\n\n oncancel: (event: ApplePayJS.Event) => void = (event: ApplePayJS.Event) => {};\n\n onpaymentauthorized: (event: ApplePayJS.ApplePayPaymentAuthorizedEvent) => void = (\n event: ApplePayJS.ApplePayPaymentAuthorizedEvent,\n ) => {};\n\n onpaymentmethodselected: (event: ApplePayJS.ApplePayPaymentMethodSelectedEvent) => void = (\n event: ApplePayJS.ApplePayPaymentMethodSelectedEvent,\n ) => {};\n\n onshippingcontactselected: (event: ApplePayJS.ApplePayShippingContactSelectedEvent) => void = (\n event: ApplePayJS.ApplePayShippingContactSelectedEvent,\n ) => {};\n\n onshippingmethodselected: (event: ApplePayJS.ApplePayShippingMethodSelectedEvent) => void = (\n event: ApplePayJS.ApplePayShippingMethodSelectedEvent,\n ) => {};\n\n onvalidatemerchant: (event: ApplePayJS.ApplePayValidateMerchantEvent) => void = (\n event: ApplePayJS.ApplePayValidateMerchantEvent,\n ) => {};\n\n abort(): void {\n this.abortCalled = true;\n }\n\n begin(): void {}\n\n completeMerchantValidation(merchantSession: any): void {\n this.completeMerchantValidationCalled = true;\n }\n\n completePayment(result: number | ApplePayJS.ApplePayPaymentAuthorizationResult): void {\n this.completePaymentResult = result;\n }\n\n completePaymentMethodSelection(\n newTotal: ApplePayJS.ApplePayLineItem,\n newLineItems: ApplePayJS.ApplePayLineItem[],\n ): void;\n\n completePaymentMethodSelection(update: ApplePayJS.ApplePayPaymentMethodUpdate): void;\n\n completePaymentMethodSelection(newTotal: any, newLineItems?: any) {\n throw new Error('Method not implemented.');\n }\n\n completeShippingContactSelection(\n status: number,\n newShippingMethods: ApplePayJS.ApplePayShippingMethod[],\n newTotal: ApplePayJS.ApplePayLineItem,\n newLineItems: ApplePayJS.ApplePayLineItem[],\n ): void;\n completeShippingContactSelection(update: ApplePayJS.ApplePayShippingContactUpdate): void;\n completeShippingContactSelection(\n status: any,\n newShippingMethods?: any,\n newTotal?: any,\n newLineItems?: any,\n ) {\n throw new Error('Method not implemented.');\n }\n completeShippingMethodSelection(\n status: number,\n newTotal: ApplePayJS.ApplePayLineItem,\n newLineItems: ApplePayJS.ApplePayLineItem[],\n ): void;\n completeShippingMethodSelection(update: ApplePayJS.ApplePayShippingMethodUpdate): void;\n completeShippingMethodSelection(status: any, newTotal?: any, newLineItems?: any) {\n throw new Error('Method not implemented.');\n }\n addEventListener(\n type: string,\n listener: EventListener | EventListenerObject | null,\n options?: boolean | AddEventListenerOptions | undefined,\n ): void {\n throw new Error('Method not implemented.');\n }\n dispatchEvent(event: Event): boolean {\n throw new Error('Method not implemented.');\n }\n removeEventListener(\n type: string,\n callback: EventListener | EventListenerObject | null,\n options?: boolean | EventListenerOptions | undefined,\n ): void {\n throw new Error('Method not implemented.');\n }\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="applepayjs" />
|
|
2
1
|
import { ApplePaySessionManagerInterface } from '../../../src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager';
|
|
3
2
|
export declare class MockApplePaySessionManager implements ApplePaySessionManagerInterface {
|
|
4
3
|
canMakePayments(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-data-collector.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-data-collector.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,MAAM,OAAO,uBAAuB;IAApC;QAWE,YAAO,GAAG,KAAK,CAAC;QAEhB,eAAU,GAAG,uBAAuB,CAAC,cAAc,CAAC;IAKtD,CAAC;IAfO,MAAM,CAAC,OAIZ;;YACC,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAMD,QAAQ,CAAC,QAAyC;QAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;;AAhBM,sCAAc,GAAG,sBAAsB,
|
|
1
|
+
{"version":3,"file":"mock-data-collector.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-data-collector.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,MAAM,OAAO,uBAAuB;IAApC;QAWE,YAAO,GAAG,KAAK,CAAC;QAEhB,eAAU,GAAG,uBAAuB,CAAC,cAAc,CAAC;IAKtD,CAAC;IAfO,MAAM,CAAC,OAIZ;;YACC,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAMD,QAAQ,CAAC,QAAyC;QAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;;AAhBM,sCAAc,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nexport class MockDeviceDataCollector implements braintree.DataCollector {\n static mockDeviceData = 'foo-mock-device-data';\n\n async create(options: {\n client: braintree.Client;\n kount: boolean;\n paypal: boolean;\n }): Promise<braintree.DataCollector> {\n return this;\n }\n\n VERSION = 'foo';\n\n deviceData = MockDeviceDataCollector.mockDeviceData;\n\n teardown(callback?: braintree.callback | undefined): void {\n throw new Error('Method not implemented.');\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-grecaptcha.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-grecaptcha.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"mock-grecaptcha.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-grecaptcha.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,iEAAO,CAAA;IACP,iEAAO,CAAA;IACP,6DAAK,CAAA;AACP,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAED,MAAM,OAAO,cAAc;IAazB,MAAM,CACJ,SAA+B,EAC/B,UAA+C,EAC/C,OAA6B;;QAE7B,IAAI,CAAC,QAAQ,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,gBAAgB,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,kBAAkB,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,KAAK,CAAC,aAAkC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,WAAW,CAAC,aAAkC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,aAAkC;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,kBAAkB,CAAC,OAAO;gBAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;gBACD,MAAM;YACR,KAAK,kBAAkB,CAAC,KAAK;gBAC3B,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC3B,CAAC;gBACD,MAAM;YACR,KAAK,kBAAkB,CAAC,OAAO;gBAC7B,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC7B,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED,YAAY,IAAwB,EAAE,QAAQ,GAAG,KAAK;QA5DtD,iBAAY,GAAG,KAAK,CAAC;QACrB,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAG,KAAK,CAAC;QACpB,sBAAiB,GAAG,KAAK,CAAC;QA0DxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nexport enum MockGrecaptchaMode {\n Success,\n Expired,\n Error,\n}\n\nexport class MockGrecaptcha implements ReCaptchaV2.ReCaptcha {\n renderCalled = false;\n executeCalled = false;\n resetCalled = false;\n getResponseCalled = false;\n\n mode: MockGrecaptchaMode;\n addDelay: boolean;\n\n callback?: (response: string) => void;\n 'expired-callback'?: () => void;\n 'error-callback'?: () => void;\n\n render(\n container: string | HTMLElement,\n parameters?: ReCaptchaV2.Parameters | undefined,\n inherit?: boolean | undefined,\n ): number {\n this.callback = parameters?.callback?.bind(this);\n this['error-callback'] = parameters?.['error-callback']?.bind(this);\n this['expired-callback'] = parameters?.['expired-callback']?.bind(this);\n this.renderCalled = true;\n return 1;\n }\n reset(opt_widget_id?: number | undefined): void {\n this.resetCalled = true;\n }\n getResponse(opt_widget_id?: number | undefined): string {\n this.getResponseCalled = true;\n return 'foo';\n }\n execute(opt_widget_id?: number | undefined): void {\n this.executeCalled = true;\n\n if (this.addDelay) {\n setTimeout(this.callCallback, 100);\n } else {\n this.callCallback();\n }\n }\n\n private callCallback(): void {\n switch (this.mode) {\n case MockGrecaptchaMode.Success:\n if (this.callback) {\n this.callback('foo');\n }\n break;\n case MockGrecaptchaMode.Error:\n if (this['error-callback']) {\n this['error-callback']();\n }\n break;\n case MockGrecaptchaMode.Expired:\n if (this['expired-callback']) {\n this['expired-callback']();\n }\n break;\n }\n }\n\n constructor(mode: MockGrecaptchaMode, addDelay = false) {\n this.mode = mode;\n this.addDelay = addDelay;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-hostedfields-client.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-hostedfields-client.ts"],"names":[],"mappings":"AAAA,uDAAuD;;AAEvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAQ7E,sDAAsD;AACtD,MAAM,OAAO,sBAAsB;IACjC,wBAAwB,CAAC,KAAc;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"mock-hostedfields-client.js","sourceRoot":"","sources":["../../../../test/mocks/payment-clients/mock-hostedfields-client.ts"],"names":[],"mappings":"AAAA,uDAAuD;;AAEvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAQ7E,sDAAsD;AACtD,MAAM,OAAO,sBAAsB;IACjC,wBAAwB,CAAC,KAAc;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,WAAW,CAAC,CAAC;IACvB,CAAC;IAEK,MAAM,CAAC,OAKZ;;YACC,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAUD,EAAE,CACA,KAAqC,EACrC,OAA2D;QAE3D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAEK,QAAQ;;YACZ,OAAO;QACT,CAAC;KAAA;IAEK,QAAQ,CAAC,OAId;;YACC,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;KAAA;IAED,QAAQ,CAAC,KAAa,EAAE,SAAiB,EAAE,QAAyC;QAClF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,SAAiB,EAAE,QAAyC;QACrF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CACZ,KAAa,EACb,WAAmB,EACnB,QAAyC;QAEzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,QAAyC;QAC5D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,OAAmF;;QAjD/F,YAAO,GAAG,KAAK,CAAC;QAER,mBAAc,GAElB,EAAE,CAAC;QA8CL,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,8BAA8B,mCAAI,8BAA8B,CAAC;IAC/F,CAAC;CAGF","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { mockHostedFieldTokenizePayload } from './mock-hostedfieldtokenizepayload';\nimport { getMockStateObject } from './mock-hostedfieldstateobject-generator';\n\nexport interface MockHostedFieldsClientEvents {\n validityChanged: (event: braintree.HostedFieldsStateObject) => void;\n focus: (event: braintree.HostedFieldsStateObject) => void;\n blur: (event: braintree.HostedFieldsStateObject) => void;\n}\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nexport class MockHostedFieldsClient implements braintree.HostedFields {\n emitValidityChangedEvent(valid: boolean): void {\n const handler = this.changeHandlers['validityChange'];\n if (!handler) {\n return;\n }\n const stateObject = getMockStateObject(valid);\n handler(stateObject);\n }\n\n async create(options: {\n client?: braintree.Client | undefined;\n authorization?: string | undefined;\n fields: braintree.HostedFieldFieldOptions;\n styles?: any;\n }): Promise<braintree.HostedFields> {\n return this;\n }\n\n styleOptions: any;\n\n VERSION = 'foo';\n\n private changeHandlers: {\n [key: string]: (event: braintree.HostedFieldsStateObject) => void;\n } = {};\n\n on(\n event: braintree.HostedFieldEventType,\n handler: (event: braintree.HostedFieldsStateObject) => void,\n ): void {\n this.changeHandlers[event] = handler.bind(this);\n }\n\n async teardown(): Promise<void> {\n return;\n }\n\n async tokenize(options?: {\n vault?: boolean;\n cardholderName?: string;\n billingAddress?: any;\n }): Promise<braintree.HostedFieldsTokenizePayload> {\n return this.mockPayload;\n }\n\n addClass(field: string, classname: string, callback?: braintree.callback | undefined): void {\n throw new Error('Method not implemented.');\n }\n\n removeClass(field: string, classname: string, callback?: braintree.callback | undefined): void {\n throw new Error('Method not implemented.');\n }\n\n setPlaceholder(\n field: string,\n placeholder: string,\n callback?: braintree.callback | undefined,\n ): void {\n throw new Error('Method not implemented.');\n }\n\n clear(field: string, callback?: braintree.callback | undefined): void {\n throw new Error('Method not implemented.');\n }\n\n getState(): any {\n throw new Error('Method not implemented.');\n }\n\n constructor(options?: { mockHostedFieldTokenizePayload: braintree.HostedFieldsTokenizePayload }) {\n this.mockPayload = options?.mockHostedFieldTokenizePayload ?? mockHostedFieldTokenizePayload;\n }\n\n private mockPayload: braintree.HostedFieldsTokenizePayload;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const mockHostedFieldTokenizePayload:
|
|
1
|
+
export declare const mockHostedFieldTokenizePayload: braintree.HostedFieldsTokenizePayload;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="googlepay" />
|
|
2
1
|
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
3
2
|
import { GooglePayHandlerInterface } from '../../../../src/braintree-manager/payment-providers/google-pay-interface';
|
|
4
3
|
export declare class MockGooglePayHandler implements GooglePayHandlerInterface {
|
package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js
CHANGED
|
@@ -9,15 +9,15 @@ export class MockPayPalButtonDataSource {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
payment() {
|
|
12
|
-
var _a;
|
|
13
12
|
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
var _a;
|
|
14
14
|
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentStarted(this, {});
|
|
15
15
|
return 'foo';
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
onAuthorize() {
|
|
19
|
-
var _a;
|
|
20
19
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
var _a;
|
|
21
21
|
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentAuthorized(this, {
|
|
22
22
|
nonce: 'foo',
|
|
23
23
|
type: 'bar',
|
package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-paypal-button-datasource.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAU/F,MAAM,OAAO,0BAA0B;IAAvC;QAEE,iBAAY,GAAwB,IAAI,mBAAmB,CAAC;YAC1D,YAAY,EAAE,YAAY,CAAC,OAAO;YAClC,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IAmBL,CAAC;IAlBO,OAAO;;;YACX,MAAA,IAAI,CAAC,QAAQ,0CAAE,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"mock-paypal-button-datasource.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAU/F,MAAM,OAAO,0BAA0B;IAAvC;QAEE,iBAAY,GAAwB,IAAI,mBAAmB,CAAC;YAC1D,YAAY,EAAE,YAAY,CAAC,OAAO;YAClC,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IAmBL,CAAC;IAlBO,OAAO;;;YACX,MAAA,IAAI,CAAC,QAAQ,0CAAE,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IACK,WAAW;;;YACf,MAAA,IAAI,CAAC,QAAQ,0CAAE,uBAAuB,CAAC,IAAI,EAAE;gBAC3C,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE;aACvF,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IACD,QAAQ,CAAC,IAAsB;;QAC7B,MAAA,IAAI,CAAC,QAAQ,0CAAE,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,CAAC,KAAa;;QACnB,MAAA,IAAI,CAAC,QAAQ,0CAAE,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;CACF","sourcesContent":["import { DonationPaymentInfo, DonationType } from '@internetarchive/donation-form-data-models';\nimport {\n TokenizePayload,\n CancellationData,\n} from '../../../../src/@types/paypal-checkout-components';\nimport {\n PayPalButtonDataSourceDelegate,\n PayPalButtonDataSourceInterface,\n} from '../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource';\n\nexport class MockPayPalButtonDataSource implements PayPalButtonDataSourceInterface {\n delegate?: PayPalButtonDataSourceDelegate | undefined;\n donationInfo: DonationPaymentInfo = new DonationPaymentInfo({\n donationType: DonationType.OneTime,\n amount: 5,\n coverFees: false,\n });\n async payment(): Promise<string> {\n this.delegate?.payPalPaymentStarted(this, {});\n return 'foo';\n }\n async onAuthorize(): Promise<TokenizePayload | undefined> {\n this.delegate?.payPalPaymentAuthorized(this, {\n nonce: 'foo',\n type: 'bar',\n details: { email: 'foo@bar.com', payerId: '1234', firstName: 'Joe', lastName: 'Boop' },\n });\n return undefined;\n }\n onCancel(data: CancellationData): void {\n this.delegate?.payPalPaymentCancelled(this, data);\n }\n onError(error: string): void {\n this.delegate?.payPalPaymentError(this, error);\n }\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
2
|
import { expect } from '@open-wc/testing';
|
|
4
3
|
import { BraintreeManager } from '../../src/braintree-manager/braintree-manager';
|
|
5
4
|
import { HostingEnvironment } from '../../src/braintree-manager/braintree-interfaces';
|
|
@@ -47,7 +46,7 @@ describe('Braintree Manager', () => {
|
|
|
47
46
|
expect((_a = endpointManager.requestSubmitted) === null || _a === void 0 ? void 0 : _a.deviceData).to.equal(MockDeviceDataCollector.mockDeviceData);
|
|
48
47
|
}));
|
|
49
48
|
it('does not collect device data if startup not called', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
-
var
|
|
49
|
+
var _a;
|
|
51
50
|
const paymentClients = new MockPaymentClients();
|
|
52
51
|
const endpointManager = new MockEndpointManager();
|
|
53
52
|
const braintreeManager = new BraintreeManager({
|
|
@@ -64,10 +63,10 @@ describe('Braintree Manager', () => {
|
|
|
64
63
|
billingInfo: mockBillingInfo,
|
|
65
64
|
customerInfo: mockCustomerInfo,
|
|
66
65
|
});
|
|
67
|
-
expect((
|
|
66
|
+
expect((_a = endpointManager.requestSubmitted) === null || _a === void 0 ? void 0 : _a.deviceData).to.equal(undefined);
|
|
68
67
|
}));
|
|
69
68
|
it('can properly set referrer, origin, and logged in user and submits them to the endpoint', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
|
-
var
|
|
69
|
+
var _a, _b, _c, _d, _e;
|
|
71
70
|
const paymentClients = new MockPaymentClients();
|
|
72
71
|
const endpointManager = new MockEndpointManager();
|
|
73
72
|
const braintreeManager = new BraintreeManager({
|
|
@@ -85,8 +84,8 @@ describe('Braintree Manager', () => {
|
|
|
85
84
|
customerInfo: mockCustomerInfo,
|
|
86
85
|
});
|
|
87
86
|
// verify they're empty
|
|
88
|
-
expect((
|
|
89
|
-
expect((
|
|
87
|
+
expect((_a = endpointManager.requestSubmitted) === null || _a === void 0 ? void 0 : _a.customFields.referrer).to.equal(undefined);
|
|
88
|
+
expect((_b = endpointManager.requestSubmitted) === null || _b === void 0 ? void 0 : _b.customFields.logged_in_user).to.equal(undefined);
|
|
90
89
|
braintreeManager.setLoggedInUser('foo-user');
|
|
91
90
|
braintreeManager.setReferrer('foo-referrer');
|
|
92
91
|
braintreeManager.setOrigin('foo-origin');
|
|
@@ -97,12 +96,12 @@ describe('Braintree Manager', () => {
|
|
|
97
96
|
billingInfo: mockBillingInfo,
|
|
98
97
|
customerInfo: mockCustomerInfo,
|
|
99
98
|
});
|
|
100
|
-
expect((
|
|
101
|
-
expect((
|
|
102
|
-
expect((
|
|
99
|
+
expect((_c = endpointManager.requestSubmitted) === null || _c === void 0 ? void 0 : _c.customFields.referrer).to.equal('foo-referrer');
|
|
100
|
+
expect((_d = endpointManager.requestSubmitted) === null || _d === void 0 ? void 0 : _d.customFields.logged_in_user).to.equal('foo-user');
|
|
101
|
+
expect((_e = endpointManager.requestSubmitted) === null || _e === void 0 ? void 0 : _e.customFields.origin).to.equal('foo-origin');
|
|
103
102
|
}));
|
|
104
103
|
it('can be initialized with referrer, origin, and logged in user and submits them to the endpoint', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
105
|
-
var
|
|
104
|
+
var _a, _b, _c;
|
|
106
105
|
const paymentClients = new MockPaymentClients();
|
|
107
106
|
const endpointManager = new MockEndpointManager();
|
|
108
107
|
const braintreeManager = new BraintreeManager({
|
|
@@ -122,9 +121,9 @@ describe('Braintree Manager', () => {
|
|
|
122
121
|
billingInfo: mockBillingInfo,
|
|
123
122
|
customerInfo: mockCustomerInfo,
|
|
124
123
|
});
|
|
125
|
-
expect((
|
|
126
|
-
expect((
|
|
127
|
-
expect((
|
|
124
|
+
expect((_a = endpointManager.requestSubmitted) === null || _a === void 0 ? void 0 : _a.customFields.referrer).to.equal('foo-referrer');
|
|
125
|
+
expect((_b = endpointManager.requestSubmitted) === null || _b === void 0 ? void 0 : _b.customFields.logged_in_user).to.equal('foo-user');
|
|
126
|
+
expect((_c = endpointManager.requestSubmitted) === null || _c === void 0 ? void 0 : _c.customFields.origin).to.equal('foo-origin');
|
|
128
127
|
}));
|
|
129
128
|
it('properly submits an upsell donation', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
130
129
|
const paymentClients = new MockPaymentClients();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"braintree-manager.test.js","sourceRoot":"","sources":["../../../test/tests/braintree-manager.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { expect } from '@open-wc/testing';\n\nimport { BraintreeManager } from '../../src/braintree-manager/braintree-manager';\nimport { HostingEnvironment } from '../../src/braintree-manager/braintree-interfaces';\nimport { MockPaymentClients } from '../mocks/mock-payment-clients';\nimport { MockEndpointManager } from '../mocks/mock-endpoint-manager';\nimport { mockHostedFieldConfig } from '../mocks/mock-hosted-fields-config';\nimport { PaymentProvider, DonationType } from '@internetarchive/donation-form-data-models';\nimport { mockBillingInfo } from '../mocks/models/mock-billing-info';\nimport { mockCustomerInfo } from '../mocks/models/mock-customer-info';\nimport { MockDeviceDataCollector } from '../mocks/payment-clients/mock-data-collector';\nimport { mockSuccessResponse } from '../mocks/models/mock-success-response';\nimport { MockDonationInfo } from '../mocks/mock-donation-info';\n\ndescribe('Braintree Manager', () => {\n it('can be initialized', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n expect(braintreeManager).to.not.equal(undefined);\n });\n\n it('collects device data on startup and submits it', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.startup();\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.deviceData).to.equal(\n MockDeviceDataCollector.mockDeviceData,\n );\n });\n\n it('does not collect device data if startup not called', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.deviceData).to.equal(undefined);\n });\n\n it('can properly set referrer, origin, and logged in user and submits them to the endpoint', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n // verify they're empty\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal(undefined);\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal(undefined);\n\n braintreeManager.setLoggedInUser('foo-user');\n braintreeManager.setReferrer('foo-referrer');\n braintreeManager.setOrigin('foo-origin');\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal('foo-referrer');\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal('foo-user');\n expect(endpointManager.requestSubmitted?.customFields.origin).to.equal('foo-origin');\n });\n\n it('can be initialized with referrer, origin, and logged in user and submits them to the endpoint', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n loggedInUser: 'foo-user',\n referrer: 'foo-referrer',\n origin: 'foo-origin',\n });\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal('foo-referrer');\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal('foo-user');\n expect(endpointManager.requestSubmitted?.customFields.origin).to.equal('foo-origin');\n });\n\n it('properly submits an upsell donation', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.submitUpsellDonation({\n oneTimeDonationResponse: mockSuccessResponse,\n amount: 3.5,\n });\n\n const requestSubmitted = endpointManager.requestSubmitted;\n\n expect(requestSubmitted?.donationType).to.equal(DonationType.Upsell);\n expect(requestSubmitted?.amount).to.equal(3.5);\n expect(requestSubmitted?.customFields.fee_amount_covered).to.equal(0);\n });\n\n it('handles successful donation', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.donationSuccessful({\n successResponse: mockSuccessResponse,\n });\n\n const successResponseSubmitted = endpointManager.successResponseSubmitted;\n\n expect(successResponseSubmitted?.donationType).to.equal(DonationType.OneTime);\n expect(successResponseSubmitted?.amount).to.equal(5);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"braintree-manager.test.js","sourceRoot":"","sources":["../../../test/tests/braintree-manager.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from '@open-wc/testing';\n\nimport { BraintreeManager } from '../../src/braintree-manager/braintree-manager';\nimport { HostingEnvironment } from '../../src/braintree-manager/braintree-interfaces';\nimport { MockPaymentClients } from '../mocks/mock-payment-clients';\nimport { MockEndpointManager } from '../mocks/mock-endpoint-manager';\nimport { mockHostedFieldConfig } from '../mocks/mock-hosted-fields-config';\nimport { PaymentProvider, DonationType } from '@internetarchive/donation-form-data-models';\nimport { mockBillingInfo } from '../mocks/models/mock-billing-info';\nimport { mockCustomerInfo } from '../mocks/models/mock-customer-info';\nimport { MockDeviceDataCollector } from '../mocks/payment-clients/mock-data-collector';\nimport { mockSuccessResponse } from '../mocks/models/mock-success-response';\nimport { MockDonationInfo } from '../mocks/mock-donation-info';\n\ndescribe('Braintree Manager', () => {\n it('can be initialized', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n expect(braintreeManager).to.not.equal(undefined);\n });\n\n it('collects device data on startup and submits it', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.startup();\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.deviceData).to.equal(\n MockDeviceDataCollector.mockDeviceData,\n );\n });\n\n it('does not collect device data if startup not called', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.deviceData).to.equal(undefined);\n });\n\n it('can properly set referrer, origin, and logged in user and submits them to the endpoint', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n // verify they're empty\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal(undefined);\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal(undefined);\n\n braintreeManager.setLoggedInUser('foo-user');\n braintreeManager.setReferrer('foo-referrer');\n braintreeManager.setOrigin('foo-origin');\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal('foo-referrer');\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal('foo-user');\n expect(endpointManager.requestSubmitted?.customFields.origin).to.equal('foo-origin');\n });\n\n it('can be initialized with referrer, origin, and logged in user and submits them to the endpoint', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n loggedInUser: 'foo-user',\n referrer: 'foo-referrer',\n origin: 'foo-origin',\n });\n\n await braintreeManager.submitDonation({\n nonce: 'boop',\n paymentProvider: PaymentProvider.CreditCard,\n donationInfo: new MockDonationInfo(),\n billingInfo: mockBillingInfo,\n customerInfo: mockCustomerInfo,\n });\n\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal('foo-referrer');\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal('foo-user');\n expect(endpointManager.requestSubmitted?.customFields.origin).to.equal('foo-origin');\n });\n\n it('properly submits an upsell donation', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.submitUpsellDonation({\n oneTimeDonationResponse: mockSuccessResponse,\n amount: 3.5,\n });\n\n const requestSubmitted = endpointManager.requestSubmitted;\n\n expect(requestSubmitted?.donationType).to.equal(DonationType.Upsell);\n expect(requestSubmitted?.amount).to.equal(3.5);\n expect(requestSubmitted?.customFields.fee_amount_covered).to.equal(0);\n });\n\n it('handles successful donation', async () => {\n const paymentClients = new MockPaymentClients();\n const endpointManager = new MockEndpointManager();\n\n const braintreeManager = new BraintreeManager({\n authorizationToken: 'foo',\n paymentClients,\n endpointManager,\n hostedFieldConfig: mockHostedFieldConfig,\n hostingEnvironment: HostingEnvironment.Development,\n });\n\n await braintreeManager.donationSuccessful({\n successResponse: mockSuccessResponse,\n });\n\n const successResponseSubmitted = endpointManager.successResponseSubmitted;\n\n expect(successResponseSubmitted?.donationType).to.equal(DonationType.OneTime);\n expect(successResponseSubmitted?.amount).to.equal(5);\n });\n});\n"]}
|
|
@@ -75,7 +75,7 @@ describe('Donation Form Controller', () => {
|
|
|
75
75
|
expect(endpointManager.requestSubmitted).to.not.equal(undefined);
|
|
76
76
|
}));
|
|
77
77
|
it('sends Viewed analytics when it first updates', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
-
var
|
|
78
|
+
var _a, _b;
|
|
79
79
|
const mockAnalytics = new MockAnalyticsManager();
|
|
80
80
|
const analyticsCategory = 'FooCategory';
|
|
81
81
|
(yield fixture(html `
|
|
@@ -86,11 +86,11 @@ describe('Donation Form Controller', () => {
|
|
|
86
86
|
>
|
|
87
87
|
</donation-form-controller>
|
|
88
88
|
`));
|
|
89
|
-
expect((
|
|
90
|
-
expect((
|
|
89
|
+
expect((_a = mockAnalytics.sendEventOptions) === null || _a === void 0 ? void 0 : _a.category).to.equal(analyticsCategory);
|
|
90
|
+
expect((_b = mockAnalytics.sendEventOptions) === null || _b === void 0 ? void 0 : _b.action).to.equal('Viewed');
|
|
91
91
|
}));
|
|
92
92
|
it('sends DonationInfoChanged analytics when donation info changes', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
|
-
var
|
|
93
|
+
var _a, _b, _c, _d, _e;
|
|
94
94
|
const mockAnalytics = new MockAnalyticsManager();
|
|
95
95
|
const analyticsCategory = 'FooCategory';
|
|
96
96
|
const controller = (yield fixture(html `
|
|
@@ -102,16 +102,16 @@ describe('Donation Form Controller', () => {
|
|
|
102
102
|
</donation-form-controller>
|
|
103
103
|
`));
|
|
104
104
|
const donationForm = controller.querySelector('donation-form');
|
|
105
|
-
const donationHeader = (
|
|
106
|
-
const editDonation = (
|
|
107
|
-
const monthlyOption = (
|
|
105
|
+
const donationHeader = (_a = donationForm.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('donation-form-header');
|
|
106
|
+
const editDonation = (_b = donationHeader === null || donationHeader === void 0 ? void 0 : donationHeader.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('donation-form-edit-donation');
|
|
107
|
+
const monthlyOption = (_c = editDonation === null || editDonation === void 0 ? void 0 : editDonation.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#donationType-monthly-option');
|
|
108
108
|
const clickEvent = new MouseEvent('click');
|
|
109
109
|
monthlyOption === null || monthlyOption === void 0 ? void 0 : monthlyOption.dispatchEvent(clickEvent);
|
|
110
|
-
expect((
|
|
111
|
-
expect((
|
|
110
|
+
expect((_d = mockAnalytics.sendEventOptions) === null || _d === void 0 ? void 0 : _d.category).to.equal(analyticsCategory);
|
|
111
|
+
expect((_e = mockAnalytics.sendEventOptions) === null || _e === void 0 ? void 0 : _e.action).to.equal('DonationInfoChanged');
|
|
112
112
|
}));
|
|
113
113
|
it('sends ProviderSelected analytics', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
114
|
-
var
|
|
114
|
+
var _a, _b, _c, _d, _e;
|
|
115
115
|
const mockAnalytics = new MockAnalyticsManager();
|
|
116
116
|
const analyticsCategory = 'FooCategory';
|
|
117
117
|
const controller = (yield fixture(html `
|
|
@@ -123,26 +123,26 @@ describe('Donation Form Controller', () => {
|
|
|
123
123
|
</donation-form-controller>
|
|
124
124
|
`));
|
|
125
125
|
const donationForm = controller.querySelector('donation-form');
|
|
126
|
-
const paymentSelector = (
|
|
126
|
+
const paymentSelector = (_a = donationForm.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('payment-selector');
|
|
127
127
|
// on the first payment provider chosen, the previousPaymentProvider is undefined
|
|
128
|
-
const creditCardButton = (
|
|
128
|
+
const creditCardButton = (_b = paymentSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.credit-card-button');
|
|
129
129
|
setTimeout(() => {
|
|
130
130
|
const ccClickEvent = new MouseEvent('click');
|
|
131
131
|
creditCardButton.dispatchEvent(ccClickEvent);
|
|
132
132
|
});
|
|
133
133
|
yield oneEvent(donationForm, 'paymentProviderSelected');
|
|
134
|
-
expect((
|
|
134
|
+
expect((_c = mockAnalytics.sendEventOptions) === null || _c === void 0 ? void 0 : _c.action).to.equal('ProviderFirstSelected-CreditCard');
|
|
135
135
|
// on subsequent payment provider choices, the previousPaymentProvider is populated
|
|
136
|
-
const venmoButton = (
|
|
136
|
+
const venmoButton = (_d = paymentSelector.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.venmo');
|
|
137
137
|
setTimeout(() => {
|
|
138
138
|
const venmoClickEvent = new MouseEvent('click');
|
|
139
139
|
venmoButton.dispatchEvent(venmoClickEvent);
|
|
140
140
|
});
|
|
141
141
|
yield oneEvent(donationForm, 'paymentProviderSelected');
|
|
142
|
-
expect((
|
|
142
|
+
expect((_e = mockAnalytics.sendEventOptions) === null || _e === void 0 ? void 0 : _e.action).to.equal('ProviderChangedTo-Venmo');
|
|
143
143
|
}));
|
|
144
144
|
it('sends PaymentFlowCancelled analytics', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
145
|
-
var
|
|
145
|
+
var _a, _b;
|
|
146
146
|
const mockAnalytics = new MockAnalyticsManager();
|
|
147
147
|
const analyticsCategory = 'FooCategory';
|
|
148
148
|
const controller = (yield fixture(html `
|
|
@@ -159,11 +159,11 @@ describe('Donation Form Controller', () => {
|
|
|
159
159
|
yield elementUpdated(donationForm);
|
|
160
160
|
yield promisedSleep(250);
|
|
161
161
|
flowHandlers.paypalHandler.emitPaymentCancelledEvent();
|
|
162
|
-
expect((
|
|
163
|
-
expect((
|
|
162
|
+
expect((_a = mockAnalytics.sendEventOptions) === null || _a === void 0 ? void 0 : _a.action).to.equal('PaymentFlowCancelled');
|
|
163
|
+
expect((_b = mockAnalytics.sendEventOptions) === null || _b === void 0 ? void 0 : _b.label).to.equal('PayPal');
|
|
164
164
|
}));
|
|
165
165
|
it('sends PaymentFlowError analytics', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
166
|
-
var
|
|
166
|
+
var _a, _b;
|
|
167
167
|
const mockAnalytics = new MockAnalyticsManager();
|
|
168
168
|
const analyticsCategory = 'FooCategory';
|
|
169
169
|
const controller = (yield fixture(html `
|
|
@@ -180,8 +180,8 @@ describe('Donation Form Controller', () => {
|
|
|
180
180
|
yield elementUpdated(donationForm);
|
|
181
181
|
yield promisedSleep(250);
|
|
182
182
|
flowHandlers.paypalHandler.emitPaymentErrorEvent();
|
|
183
|
-
expect((
|
|
184
|
-
expect((
|
|
183
|
+
expect((_a = mockAnalytics.sendEventOptions) === null || _a === void 0 ? void 0 : _a.action).to.equal('PaymentFlowError');
|
|
184
|
+
expect((_b = mockAnalytics.sendEventOptions) === null || _b === void 0 ? void 0 : _b.label).to.equal('PayPal-foo-error');
|
|
185
185
|
}));
|
|
186
186
|
});
|
|
187
187
|
//# sourceMappingURL=donation-form-controller.test.js.map
|
|
@@ -40,14 +40,14 @@ describe('Donation Form', () => {
|
|
|
40
40
|
expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.false;
|
|
41
41
|
}));
|
|
42
42
|
it('shows the contact form when Venmo is selected', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
-
var
|
|
43
|
+
var _a, _b, _c;
|
|
44
44
|
const el = (yield fixture(html ` <donation-form></donation-form> `));
|
|
45
45
|
const braintreeManager = new MockBraintreeManager();
|
|
46
46
|
el.braintreeManager = braintreeManager;
|
|
47
47
|
yield elementUpdated(el);
|
|
48
|
-
const contactFormSection = (
|
|
49
|
-
const paymentSelector = (
|
|
50
|
-
const venmoButton = (
|
|
48
|
+
const contactFormSection = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.contact-form-section');
|
|
49
|
+
const paymentSelector = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('payment-selector');
|
|
50
|
+
const venmoButton = (_c = paymentSelector.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.venmo');
|
|
51
51
|
expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.true;
|
|
52
52
|
const clickEvent = new MouseEvent('click');
|
|
53
53
|
venmoButton.dispatchEvent(clickEvent);
|
|
@@ -70,13 +70,13 @@ describe('Donation Form', () => {
|
|
|
70
70
|
expect(flowHandlers.paypalHandler.donationInfo).to.equal(donationInfo);
|
|
71
71
|
}));
|
|
72
72
|
it('emits paymentProviderSelected when the selected provider changes', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
-
var
|
|
73
|
+
var _a, _b;
|
|
74
74
|
const el = (yield fixture(html ` <donation-form></donation-form> `));
|
|
75
75
|
const braintreeManager = new MockBraintreeManager();
|
|
76
76
|
el.braintreeManager = braintreeManager;
|
|
77
77
|
yield elementUpdated(el);
|
|
78
|
-
const paymentSelector = (
|
|
79
|
-
const creditCardButton = (
|
|
78
|
+
const paymentSelector = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('payment-selector');
|
|
79
|
+
const creditCardButton = (_b = paymentSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.credit-card-button');
|
|
80
80
|
// on the first payment provider chosen, the previousPaymentProvider is undefined
|
|
81
81
|
setTimeout(() => {
|
|
82
82
|
const ccClickEvent = new MouseEvent('click');
|
|
@@ -70,7 +70,7 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
70
70
|
expect((_a = modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.title) === null || _a === void 0 ? void 0 : _a.strings[0]).to.contain('Processing...');
|
|
71
71
|
}));
|
|
72
72
|
it('can show the error modal', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
-
var
|
|
73
|
+
var _a, _b;
|
|
74
74
|
const mockModalManager = (yield fixture(html `
|
|
75
75
|
<mock-modal-manager></mock-modal-manager>
|
|
76
76
|
`));
|
|
@@ -86,11 +86,11 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
86
86
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.showProcessingIndicator).to.be.false;
|
|
87
87
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.closeOnBackdropClick).to.be.true;
|
|
88
88
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.showCloseButton).to.be.true;
|
|
89
|
-
expect((
|
|
90
|
-
expect((
|
|
89
|
+
expect((_a = modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.headline) === null || _a === void 0 ? void 0 : _a.strings[0]).to.contain("There's been a problem completing your donation.");
|
|
90
|
+
expect((_b = modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.message) === null || _b === void 0 ? void 0 : _b.values[0]).to.equal('foo-error');
|
|
91
91
|
}));
|
|
92
92
|
it('shows the thank you modal and calls `donationSuccessful` to take user to thank you page', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
|
-
var
|
|
93
|
+
var _a, _b;
|
|
94
94
|
const mockModalManager = (yield fixture(html `
|
|
95
95
|
<mock-modal-manager></mock-modal-manager>
|
|
96
96
|
`));
|
|
@@ -114,8 +114,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
114
114
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.showProcessingIndicator).to.be.true;
|
|
115
115
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.closeOnBackdropClick).to.be.true;
|
|
116
116
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.showCloseButton).to.be.true;
|
|
117
|
-
expect((
|
|
118
|
-
const response = (
|
|
117
|
+
expect((_a = modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.title) === null || _a === void 0 ? void 0 : _a.strings[0]).to.contain('Thank You!');
|
|
118
|
+
const response = (_b = mockBraintreeManager.donationSuccessfulOptions) === null || _b === void 0 ? void 0 : _b.successResponse;
|
|
119
119
|
expect(response).to.deep.equal(mockSuccessResponse);
|
|
120
120
|
}));
|
|
121
121
|
it('donation submitted analytics gets sent when drawing thank you modal', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -144,7 +144,7 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
144
144
|
expect(logDonationFlowEvent.args[0][1]).to.equal(DonationType.OneTime);
|
|
145
145
|
}));
|
|
146
146
|
it('can show the confirmation modal', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
147
|
-
var
|
|
147
|
+
var _a, _b;
|
|
148
148
|
const mockModalManager = (yield fixture(html `
|
|
149
149
|
<mock-modal-manager></mock-modal-manager>
|
|
150
150
|
`));
|
|
@@ -165,7 +165,7 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
165
165
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.headerColor).to.equal('#55A183');
|
|
166
166
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.closeOnBackdropClick).to.be.false;
|
|
167
167
|
expect(modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config.showCloseButton).to.be.true;
|
|
168
|
-
expect((
|
|
168
|
+
expect((_b = (_a = modalOptions === null || modalOptions === void 0 ? void 0 : modalOptions.config) === null || _a === void 0 ? void 0 : _a.title) === null || _b === void 0 ? void 0 : _b.values).to.contain('Confirm monthly donation');
|
|
169
169
|
}));
|
|
170
170
|
it('can start the donation submission flow', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
171
171
|
const mockModalManager = (yield fixture(html `
|
|
@@ -17,7 +17,7 @@ describe('DonationSummary', () => {
|
|
|
17
17
|
expect(titleElement === null || titleElement === void 0 ? void 0 : titleElement.innerText).to.equal('$3.50 Donation');
|
|
18
18
|
}));
|
|
19
19
|
it('shows the proper title for monthly donations', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
-
var
|
|
20
|
+
var _a;
|
|
21
21
|
const el = (yield fixture(html ` <donation-summary></donation-summary>> `));
|
|
22
22
|
const donationInfo = new DonationPaymentInfo({
|
|
23
23
|
amount: 7.5,
|
|
@@ -26,7 +26,7 @@ describe('DonationSummary', () => {
|
|
|
26
26
|
});
|
|
27
27
|
el.donationInfo = donationInfo;
|
|
28
28
|
yield elementUpdated(el);
|
|
29
|
-
const titleElement = (
|
|
29
|
+
const titleElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('h1');
|
|
30
30
|
expect(titleElement === null || titleElement === void 0 ? void 0 : titleElement.innerText).to.equal('$7.50 Monthly Donation');
|
|
31
31
|
}));
|
|
32
32
|
});
|
|
@@ -15,17 +15,17 @@ describe('Payment Selector', () => {
|
|
|
15
15
|
expect(venmoButton === null || venmoButton === void 0 ? void 0 : venmoButton.classList.contains('available')).to.be.true;
|
|
16
16
|
}));
|
|
17
17
|
it('can show PayPal when called', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
-
var
|
|
18
|
+
var _a;
|
|
19
19
|
const el = (yield fixture(html ` <payment-selector></payment-selector> `));
|
|
20
20
|
el.showPaypalButton();
|
|
21
21
|
yield elementUpdated(el);
|
|
22
|
-
const paypalButton = (
|
|
22
|
+
const paypalButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.paypal-container.provider-button');
|
|
23
23
|
expect(paypalButton === null || paypalButton === void 0 ? void 0 : paypalButton.classList.contains('available')).to.be.true;
|
|
24
24
|
}));
|
|
25
25
|
it('emits paypalBlockerSelected event when paypal is selected in an error state', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
-
var
|
|
26
|
+
var _a;
|
|
27
27
|
const el = (yield fixture(html ` <payment-selector></payment-selector> `));
|
|
28
|
-
const paypalBlocker = (
|
|
28
|
+
const paypalBlocker = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.paypal-local-button');
|
|
29
29
|
const clickEvent = new MouseEvent('click');
|
|
30
30
|
setTimeout(() => {
|
|
31
31
|
paypalBlocker === null || paypalBlocker === void 0 ? void 0 : paypalBlocker.dispatchEvent(clickEvent);
|
|
@@ -34,9 +34,9 @@ describe('Payment Selector', () => {
|
|
|
34
34
|
expect(response).to.exist;
|
|
35
35
|
}));
|
|
36
36
|
it('emits applePaySelected event with original click event when ApplePay is selected', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
-
var
|
|
37
|
+
var _a;
|
|
38
38
|
const el = (yield fixture(html ` <payment-selector></payment-selector> `));
|
|
39
|
-
const paypalBlocker = (
|
|
39
|
+
const paypalBlocker = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.applepay.provider-button');
|
|
40
40
|
const clickEvent = new MouseEvent('click');
|
|
41
41
|
setTimeout(() => {
|
|
42
42
|
paypalBlocker === null || paypalBlocker === void 0 ? void 0 : paypalBlocker.dispatchEvent(clickEvent);
|
|
@@ -46,9 +46,9 @@ describe('Payment Selector', () => {
|
|
|
46
46
|
expect(event).to.equal(clickEvent);
|
|
47
47
|
}));
|
|
48
48
|
it('emits googlePaySelected when GooglePay is selected', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
-
var
|
|
49
|
+
var _a;
|
|
50
50
|
const el = (yield fixture(html ` <payment-selector></payment-selector> `));
|
|
51
|
-
const paypalBlocker = (
|
|
51
|
+
const paypalBlocker = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.googlepay.provider-button');
|
|
52
52
|
const clickEvent = new MouseEvent('click');
|
|
53
53
|
setTimeout(() => {
|
|
54
54
|
paypalBlocker === null || paypalBlocker === void 0 ? void 0 : paypalBlocker.dispatchEvent(clickEvent);
|