@internetarchive/donation-form 1.0.2 → 1.0.3-alpha-webdev7960.1
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/LICENSE +661 -661
- package/README.md +115 -115
- package/dist/demo/braintree-endpoint-manager.js.map +1 -1
- package/dist/demo/demo-analytics-handler.js.map +1 -1
- package/dist/demo/submit-form-with.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/braintree-manager/braintree-interfaces.js.map +1 -1
- package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-clients.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -1
- 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.js.map +1 -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-interface.js.map +1 -1
- 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-configuration.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.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.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-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers.js.map +1 -1
- package/dist/src/donation-form-controller.js +123 -123
- package/dist/src/donation-form-controller.js.map +1 -1
- package/dist/src/donation-form-error.js.map +1 -1
- package/dist/src/donation-form.js +107 -107
- package/dist/src/donation-form.js.map +1 -1
- package/dist/src/form-elements/badged-input.js +47 -47
- package/dist/src/form-elements/badged-input.js.map +1 -1
- package/dist/src/form-elements/contact-form/autocomplete-field-options.js.map +1 -1
- package/dist/src/form-elements/contact-form/contact-form.js +157 -157
- package/dist/src/form-elements/contact-form/contact-form.js.map +1 -1
- package/dist/src/form-elements/contact-form/countries.js.map +1 -1
- package/dist/src/form-elements/header/donation-form-header.js +14 -14
- package/dist/src/form-elements/header/donation-form-header.js.map +1 -1
- package/dist/src/form-elements/header/donation-summary.js +15 -15
- package/dist/src/form-elements/header/donation-summary.js.map +1 -1
- package/dist/src/form-elements/payment-selector.js +164 -164
- package/dist/src/form-elements/payment-selector.js.map +1 -1
- package/dist/src/form-elements/total-amount.js +16 -16
- package/dist/src/form-elements/total-amount.js.map +1 -1
- package/dist/src/modals/confirm-donation-modal-content.js +51 -51
- package/dist/src/modals/confirm-donation-modal-content.js.map +1 -1
- package/dist/src/modals/error-modal-content.js +22 -22
- package/dist/src/modals/error-modal-content.js.map +1 -1
- package/dist/src/modals/upsell-modal-content.js +182 -182
- package/dist/src/modals/upsell-modal-content.js.map +1 -1
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js +20 -20
- 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.map +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.map +1 -1
- 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.map +1 -1
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js.map +1 -1
- package/dist/src/recaptcha-manager/recaptcha-manager.js.map +1 -1
- package/dist/src/util/promisedSleep.js.map +1 -1
- package/dist/test/helpers/fillInContactForm.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js.map +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-donation-info.js.map +1 -1
- package/dist/test/mocks/mock-endpoint-manager.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-config.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-container.js.map +1 -1
- package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
- package/dist/test/mocks/mock-modal-manager.js.map +1 -1
- package/dist/test/mocks/mock-payment-clients.js.map +1 -1
- package/dist/test/mocks/mock-paypal-button-renderer.js.map +1 -1
- package/dist/test/mocks/mock-recaptcha-manager.js.map +1 -1
- package/dist/test/mocks/models/mock-billing-info.js.map +1 -1
- package/dist/test/mocks/models/mock-custom-fields.js.map +1 -1
- package/dist/test/mocks/models/mock-customer-info.js.map +1 -1
- package/dist/test/mocks/models/mock-donation-request.js.map +1 -1
- package/dist/test/mocks/models/mock-success-response.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-payment.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-session.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-braintree-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-data-collector.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-library.js.map +1 -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-hostedfieldstateobject-generator.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-library.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-venmo-client.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/mock-payment-providers.js.map +1 -1
- package/dist/test/tests/braintree-manager.test.js.map +1 -1
- package/dist/test/tests/donation-form-controller.test.js +39 -39
- package/dist/test/tests/donation-form-controller.test.js.map +1 -1
- package/dist/test/tests/donation-form.test.js +4 -4
- package/dist/test/tests/donation-form.test.js.map +1 -1
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js +14 -14
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js.map +1 -1
- package/dist/test/tests/form-elements/donation-summary.test.js.map +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.js.map +1 -1
- package/dist/test/tests/modals/error-modal-content.test.js +2 -2
- package/dist/test/tests/modals/error-modal-content.test.js.map +1 -1
- package/dist/test/tests/modals/upsell-modal-content.test.js +31 -31
- package/dist/test/tests/modals/upsell-modal-content.test.js.map +1 -1
- package/dist/test/tests/models/donation-payment-info.test.js.map +1 -1
- package/dist/test/tests/payment-clients.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
- package/dist/test/tests/payment-providers/googlepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/payment-providers.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal.test.js.map +1 -1
- package/dist/test/tests/payment-providers/venmo.test.js.map +1 -1
- package/dist/test/tests/recaptcha-manager.test.js.map +1 -1
- package/package.json +107 -107
- package/src/@types/analytics-handler/index.d.ts +8 -8
- package/src/@types/braintree-web/LICENSE +21 -21
- package/src/@types/braintree-web/index.d.ts +93 -93
- package/src/@types/braintree-web/modules/american-express.d.ts +50 -50
- package/src/@types/braintree-web/modules/apple-pay.d.ts +213 -213
- package/src/@types/braintree-web/modules/client.d.ts +103 -103
- package/src/@types/braintree-web/modules/core.d.ts +34 -34
- package/src/@types/braintree-web/modules/data-collector.d.ts +13 -13
- package/src/@types/braintree-web/modules/google-payment.d.ts +269 -269
- package/src/@types/braintree-web/modules/hosted-fields.d.ts +366 -366
- package/src/@types/braintree-web/modules/paypal-checkout.d.ts +262 -262
- package/src/@types/braintree-web/modules/paypal.d.ts +177 -177
- package/src/@types/braintree-web/modules/three-d-secure.d.ts +141 -141
- package/src/@types/braintree-web/modules/unionpay.d.ts +224 -224
- package/src/@types/braintree-web/modules/us-bank-account.d.ts +81 -81
- package/src/@types/braintree-web/modules/venmo.d.ts +110 -110
- package/src/@types/braintree-web/package.json +64 -64
- package/src/@types/paypal-checkout-components/LICENSE +21 -21
- package/src/@types/paypal-checkout-components/index.d.ts +67 -67
- package/src/@types/paypal-checkout-components/modules/button.d.ts +50 -50
- package/src/@types/paypal-checkout-components/modules/callback-data.d.ts +244 -244
- package/src/@types/paypal-checkout-components/modules/configuration.d.ts +114 -114
- package/src/@types/paypal-checkout-components/package.json +58 -58
- package/src/braintree-manager/braintree-interfaces.ts +172 -172
- package/src/braintree-manager/braintree-manager.ts +281 -281
- package/src/braintree-manager/payment-clients.ts +146 -146
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.ts +13 -13
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.ts +8 -8
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.ts +10 -10
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.ts +119 -119
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.ts +21 -21
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay.ts +97 -97
- package/src/braintree-manager/payment-providers/credit-card/credit-card-interface.ts +21 -21
- package/src/braintree-manager/payment-providers/credit-card/credit-card.ts +130 -130
- package/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.ts +19 -19
- package/src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts +85 -85
- package/src/braintree-manager/payment-providers/google-pay-interface.ts +8 -8
- package/src/braintree-manager/payment-providers/google-pay.ts +59 -59
- package/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.ts +218 -218
- package/src/braintree-manager/payment-providers/paypal/paypal-interface.ts +13 -13
- package/src/braintree-manager/payment-providers/paypal/paypal.ts +78 -78
- package/src/braintree-manager/payment-providers/venmo-interface.ts +8 -8
- package/src/braintree-manager/payment-providers/venmo.ts +67 -67
- package/src/braintree-manager/payment-providers-interface.ts +25 -25
- package/src/braintree-manager/payment-providers.ts +147 -147
- package/src/donation-form-controller.ts +623 -623
- package/src/donation-form-error.ts +6 -6
- package/src/donation-form.ts +576 -576
- package/src/form-elements/badged-input.ts +109 -109
- package/src/form-elements/contact-form/autocomplete-field-options.ts +63 -63
- package/src/form-elements/contact-form/contact-form.ts +434 -434
- package/src/form-elements/contact-form/countries.ts +252 -252
- package/src/form-elements/header/donation-form-header.ts +98 -98
- package/src/form-elements/header/donation-summary.ts +61 -61
- package/src/form-elements/payment-selector.ts +365 -365
- package/src/form-elements/total-amount.ts +46 -46
- package/src/modals/confirm-donation-modal-content.ts +168 -168
- package/src/modals/error-modal-content.ts +48 -48
- package/src/modals/upsell-modal-content.ts +284 -284
- package/src/payment-flow-handlers/donation-flow-modal-manager.ts +439 -439
- package/src/payment-flow-handlers/handlers/applepay-flow-handler.ts +109 -109
- package/src/payment-flow-handlers/handlers/creditcard-flow-handler.ts +232 -232
- package/src/payment-flow-handlers/handlers/googlepay-flow-handler.ts +111 -111
- package/src/payment-flow-handlers/handlers/paypal-flow-handler.ts +331 -331
- package/src/payment-flow-handlers/handlers/venmo-flow-handler.ts +119 -119
- package/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.ts +127 -127
- package/src/payment-flow-handlers/payment-flow-handlers.ts +218 -218
- package/src/recaptcha-manager/recaptcha-manager.ts +123 -123
- package/src/util/promisedSleep.ts +3 -3
- package/dist/demo/app-root.d.ts +0 -0
- package/dist/demo/app-root.js +0 -2
- package/dist/demo/app-root.js.map +0 -1
package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-creditcard-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-creditcard-handler.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAC;AAKvG,OAAO,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAE3D,MAAM,OAAO,qBAAqB;IAW1B,oBAAoB;;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;KAAA;IAED,eAAe,CAAC,MAAyB;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,MAAyB;QACzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,CAAC,OAA4B;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,OAAgE;;QA9B5E,aAAQ,GAAG,IAAI,iBAAiB,CAAyB;YACvD,SAAS,EAAE,GAAoC,EAAE,CAC/C,IAAI,OAAO,CAAyB,OAAO,CAAC,EAAE;gBAC5C,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC;oBACxC,8BAA8B,EAAE,IAAI,CAAC,WAAW;iBACjD,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;SACL,CAAC,CAAC;QA0BK,YAAO,GAAG,gBAAgB,EAA2B,CAAC;QAH5D,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,8BAA8B,CAAC;IAC5E,CAAC;IAID,EAAE,CACA,KAAQ,EACR,QAAoC;QAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAGF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { HostedFieldName } from '../../../../src/braintree-manager/payment-providers/credit-card/hosted-field-container';\nimport { MockHostedFieldsClient } from '../../payment-clients/mock-hostedfields-client';\nimport { mockHostedFieldTokenizePayload } from '../../payment-clients/mock-hostedfieldtokenizepayload';\nimport {\n CreditCardHandlerEvents,\n CreditCardHandlerInterface,\n} from '../../../../src/braintree-manager/payment-providers/credit-card/credit-card-interface';\nimport { createNanoEvents, Unsubscribe } from 'nanoevents';\n\nexport class MockCreditCardHandler implements CreditCardHandlerInterface {\n instance = new PromisedSingleton<braintree.HostedFields>({\n generator: (): Promise<braintree.HostedFields> =>\n new Promise<braintree.HostedFields>(resolve => {\n const client = new MockHostedFieldsClient({\n mockHostedFieldTokenizePayload: this.mockPayload,\n });\n resolve(client);\n }),\n });\n\n async tokenizeHostedFields(): Promise<braintree.HostedFieldsTokenizePayload | undefined> {\n return this.mockPayload;\n }\n\n markFieldErrors(fields: HostedFieldName[]): void {\n throw new Error('Method not implemented.');\n }\n\n removeFieldErrors(fields: HostedFieldName[]): void {\n throw new Error('Method not implemented.');\n }\n\n showErrorMessage(message?: string | undefined): void {\n throw new Error('Method not implemented.');\n }\n\n hideErrorMessage(): void {\n throw new Error('Method not implemented.');\n }\n\n constructor(options?: { mockPayload: braintree.HostedFieldsTokenizePayload }) {\n this.mockPayload = options?.mockPayload ?? mockHostedFieldTokenizePayload;\n }\n\n private emitter = createNanoEvents<CreditCardHandlerEvents>();\n\n on<E extends keyof CreditCardHandlerEvents>(\n event: E,\n callback: CreditCardHandlerEvents[E],\n ): Unsubscribe {\n return this.emitter.on(event, callback);\n }\n\n mockPayload: braintree.HostedFieldsTokenizePayload;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mock-creditcard-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-creditcard-handler.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAC;AAKvG,OAAO,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAE3D,MAAM,OAAO,qBAAqB;IAW1B,oBAAoB;;YACxB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;KAAA;IAED,eAAe,CAAC,MAAyB;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,MAAyB;QACzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,CAAC,OAA4B;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,OAAgE;;QA9B5E,aAAQ,GAAG,IAAI,iBAAiB,CAAyB;YACvD,SAAS,EAAE,GAAoC,EAAE,CAC/C,IAAI,OAAO,CAAyB,OAAO,CAAC,EAAE;gBAC5C,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC;oBACxC,8BAA8B,EAAE,IAAI,CAAC,WAAW;iBACjD,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;SACL,CAAC,CAAC;QA0BK,YAAO,GAAG,gBAAgB,EAA2B,CAAC;QAH5D,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,8BAA8B,CAAC;IAC5E,CAAC;IAID,EAAE,CACA,KAAQ,EACR,QAAoC;QAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAGF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { PromisedSingleton } from '@internetarchive/promised-singleton';\r\nimport { HostedFieldName } from '../../../../src/braintree-manager/payment-providers/credit-card/hosted-field-container';\r\nimport { MockHostedFieldsClient } from '../../payment-clients/mock-hostedfields-client';\r\nimport { mockHostedFieldTokenizePayload } from '../../payment-clients/mock-hostedfieldtokenizepayload';\r\nimport {\r\n CreditCardHandlerEvents,\r\n CreditCardHandlerInterface,\r\n} from '../../../../src/braintree-manager/payment-providers/credit-card/credit-card-interface';\r\nimport { createNanoEvents, Unsubscribe } from 'nanoevents';\r\n\r\nexport class MockCreditCardHandler implements CreditCardHandlerInterface {\r\n instance = new PromisedSingleton<braintree.HostedFields>({\r\n generator: (): Promise<braintree.HostedFields> =>\r\n new Promise<braintree.HostedFields>(resolve => {\r\n const client = new MockHostedFieldsClient({\r\n mockHostedFieldTokenizePayload: this.mockPayload,\r\n });\r\n resolve(client);\r\n }),\r\n });\r\n\r\n async tokenizeHostedFields(): Promise<braintree.HostedFieldsTokenizePayload | undefined> {\r\n return this.mockPayload;\r\n }\r\n\r\n markFieldErrors(fields: HostedFieldName[]): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n removeFieldErrors(fields: HostedFieldName[]): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n showErrorMessage(message?: string | undefined): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n hideErrorMessage(): void {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n constructor(options?: { mockPayload: braintree.HostedFieldsTokenizePayload }) {\r\n this.mockPayload = options?.mockPayload ?? mockHostedFieldTokenizePayload;\r\n }\r\n\r\n private emitter = createNanoEvents<CreditCardHandlerEvents>();\r\n\r\n on<E extends keyof CreditCardHandlerEvents>(\r\n event: E,\r\n callback: CreditCardHandlerEvents[E],\r\n ): Unsubscribe {\r\n return this.emitter.on(event, callback);\r\n }\r\n\r\n mockPayload: braintree.HostedFieldsTokenizePayload;\r\n}\r\n"]}
|
package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-googlepay-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-googlepay-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAGpF,MAAM,OAAO,oBAAoB;IAAjC;QACE,mBAAc,GAAuC,IAAI,oBAAoB,EAAE,CAAC;QAEhF,aAAQ,GAAG,IAAI,iBAAiB,CAA0B;YACxD,SAAS,EAAE,GAAqC,EAAE,CAChD,IAAI,OAAO,CAA0B,OAAO,CAAC,EAAE;gBAC7C,OAAO,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC;SACL,CAAC,CAAC;IAKL,CAAC;IAHC,kBAAkB;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { MockGooglePaymentClient } from '../../payment-clients/mock-googlepay-client';\nimport { MockGooglePayLibrary } from '../../payment-clients/mock-googlepay-library';\nimport { GooglePayHandlerInterface } from '../../../../src/braintree-manager/payment-providers/google-pay-interface';\n\nexport class MockGooglePayHandler implements GooglePayHandlerInterface {\n paymentsClient: google.payments.api.PaymentsClient = new MockGooglePayLibrary();\n\n instance = new PromisedSingleton<braintree.GooglePayment>({\n generator: (): Promise<braintree.GooglePayment> =>\n new Promise<braintree.GooglePayment>(resolve => {\n resolve(new MockGooglePaymentClient());\n }),\n });\n\n isBrowserSupported(): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mock-googlepay-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-googlepay-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAGpF,MAAM,OAAO,oBAAoB;IAAjC;QACE,mBAAc,GAAuC,IAAI,oBAAoB,EAAE,CAAC;QAEhF,aAAQ,GAAG,IAAI,iBAAiB,CAA0B;YACxD,SAAS,EAAE,GAAqC,EAAE,CAChD,IAAI,OAAO,CAA0B,OAAO,CAAC,EAAE;gBAC7C,OAAO,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC;SACL,CAAC,CAAC;IAKL,CAAC;IAHC,kBAAkB;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\r\nimport { MockGooglePaymentClient } from '../../payment-clients/mock-googlepay-client';\r\nimport { MockGooglePayLibrary } from '../../payment-clients/mock-googlepay-library';\r\nimport { GooglePayHandlerInterface } from '../../../../src/braintree-manager/payment-providers/google-pay-interface';\r\n\r\nexport class MockGooglePayHandler implements GooglePayHandlerInterface {\r\n paymentsClient: google.payments.api.PaymentsClient = new MockGooglePayLibrary();\r\n\r\n instance = new PromisedSingleton<braintree.GooglePayment>({\r\n generator: (): Promise<braintree.GooglePayment> =>\r\n new Promise<braintree.GooglePayment>(resolve => {\r\n resolve(new MockGooglePaymentClient());\r\n }),\r\n });\r\n\r\n isBrowserSupported(): Promise<boolean> {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-paypal-button-datasource-delegate.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.ts"],"names":[],"mappings":";AAKA,MAAM,OAAO,kCAAkC;IAA/C;QACE,0BAAqB,GAIjB;YACF,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,6BAAwB,GAIpB;YACF,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,4BAAuB,GAInB;YACF,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,wBAAmB,GAIf;YACF,MAAM,EAAE,KAAK;SACd,CAAC;IA8CJ,CAAC;IA5CO,oBAAoB,CACxB,UAA2C,EAC3C,OAAe;;YAEf,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,UAAU,CAAC;YACnD,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/C,CAAC;KAAA;IAEK,uBAAuB,CAC3B,UAA2C,EAC3C,OAA+B;;YAE/B,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,UAAU,GAAG,UAAU,CAAC;YACtD,IAAI,CAAC,wBAAwB,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,CAAC;KAAA;IAEK,sBAAsB,CAC1B,UAA2C,EAC3C,OAA+B;;YAE/B,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,UAAU,GAAG,UAAU,CAAC;YACtD,IAAI,CAAC,wBAAwB,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,CAAC;KAAA;IAEK,sBAAsB,CAC1B,UAA2C,EAC3C,IAAY;;YAEZ,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,IAAI,CAAC;YAC3C,IAAI,CAAC,uBAAuB,CAAC,UAAU,GAAG,UAAU,CAAC;YACrD,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3C,CAAC;KAAA;IAEK,kBAAkB,CACtB,UAA2C,EAC3C,KAAa;;YAEb,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,UAAU,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,KAAK,CAAC;QACzC,CAAC;KAAA;CACF","sourcesContent":["import {\n PayPalButtonDataSourceDelegate,\n PayPalButtonDataSourceInterface,\n} from '../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource';\n\nexport class MockPayPalButtonDataSourceDelegate implements PayPalButtonDataSourceDelegate {\n paymentStartedResults: {\n called: boolean;\n datasource?: PayPalButtonDataSourceInterface;\n options?: object;\n } = {\n called: false,\n };\n\n paymentAuthorizedResults: {\n called: boolean;\n datasource?: PayPalButtonDataSourceInterface;\n payload?: paypal.TokenizePayload;\n } = {\n called: false,\n };\n\n paymentCancelledResults: {\n called: boolean;\n datasource?: PayPalButtonDataSourceInterface;\n data?: object;\n } = {\n called: false,\n };\n\n paymentErrorResults: {\n called: boolean;\n datasource?: PayPalButtonDataSourceInterface;\n error?: string;\n } = {\n called: false,\n };\n\n async payPalPaymentStarted(\n dataSource: PayPalButtonDataSourceInterface,\n options: object,\n ): Promise<void> {\n this.paymentStartedResults.called = true;\n this.paymentStartedResults.datasource = dataSource;\n this.paymentStartedResults.options = options;\n }\n\n async payPalPaymentAuthorized(\n dataSource: PayPalButtonDataSourceInterface,\n payload: paypal.TokenizePayload,\n ): Promise<void> {\n this.paymentAuthorizedResults.called = true;\n this.paymentAuthorizedResults.datasource = dataSource;\n this.paymentAuthorizedResults.payload = payload;\n }\n\n async payPalPaymentConfirmed(\n dataSource: PayPalButtonDataSourceInterface,\n payload: paypal.TokenizePayload,\n ): Promise<void> {\n this.paymentAuthorizedResults.called = true;\n this.paymentAuthorizedResults.datasource = dataSource;\n this.paymentAuthorizedResults.payload = payload;\n }\n\n async payPalPaymentCancelled(\n dataSource: PayPalButtonDataSourceInterface,\n data: object,\n ): Promise<void> {\n this.paymentCancelledResults.called = true;\n this.paymentCancelledResults.datasource = dataSource;\n this.paymentCancelledResults.data = data;\n }\n\n async payPalPaymentError(\n dataSource: PayPalButtonDataSourceInterface,\n error: string,\n ): Promise<void> {\n this.paymentErrorResults.called = true;\n this.paymentErrorResults.datasource = dataSource;\n this.paymentErrorResults.error = error;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mock-paypal-button-datasource-delegate.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.ts"],"names":[],"mappings":";AAKA,MAAM,OAAO,kCAAkC;IAA/C;QACE,0BAAqB,GAIjB;YACF,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,6BAAwB,GAIpB;YACF,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,4BAAuB,GAInB;YACF,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,wBAAmB,GAIf;YACF,MAAM,EAAE,KAAK;SACd,CAAC;IA8CJ,CAAC;IA5CO,oBAAoB,CACxB,UAA2C,EAC3C,OAAe;;YAEf,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,qBAAqB,CAAC,UAAU,GAAG,UAAU,CAAC;YACnD,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/C,CAAC;KAAA;IAEK,uBAAuB,CAC3B,UAA2C,EAC3C,OAA+B;;YAE/B,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,UAAU,GAAG,UAAU,CAAC;YACtD,IAAI,CAAC,wBAAwB,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,CAAC;KAAA;IAEK,sBAAsB,CAC1B,UAA2C,EAC3C,OAA+B;;YAE/B,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,UAAU,GAAG,UAAU,CAAC;YACtD,IAAI,CAAC,wBAAwB,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,CAAC;KAAA;IAEK,sBAAsB,CAC1B,UAA2C,EAC3C,IAAY;;YAEZ,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,IAAI,CAAC;YAC3C,IAAI,CAAC,uBAAuB,CAAC,UAAU,GAAG,UAAU,CAAC;YACrD,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3C,CAAC;KAAA;IAEK,kBAAkB,CACtB,UAA2C,EAC3C,KAAa;;YAEb,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,UAAU,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,KAAK,CAAC;QACzC,CAAC;KAAA;CACF","sourcesContent":["import {\r\n PayPalButtonDataSourceDelegate,\r\n PayPalButtonDataSourceInterface,\r\n} from '../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource';\r\n\r\nexport class MockPayPalButtonDataSourceDelegate implements PayPalButtonDataSourceDelegate {\r\n paymentStartedResults: {\r\n called: boolean;\r\n datasource?: PayPalButtonDataSourceInterface;\r\n options?: object;\r\n } = {\r\n called: false,\r\n };\r\n\r\n paymentAuthorizedResults: {\r\n called: boolean;\r\n datasource?: PayPalButtonDataSourceInterface;\r\n payload?: paypal.TokenizePayload;\r\n } = {\r\n called: false,\r\n };\r\n\r\n paymentCancelledResults: {\r\n called: boolean;\r\n datasource?: PayPalButtonDataSourceInterface;\r\n data?: object;\r\n } = {\r\n called: false,\r\n };\r\n\r\n paymentErrorResults: {\r\n called: boolean;\r\n datasource?: PayPalButtonDataSourceInterface;\r\n error?: string;\r\n } = {\r\n called: false,\r\n };\r\n\r\n async payPalPaymentStarted(\r\n dataSource: PayPalButtonDataSourceInterface,\r\n options: object,\r\n ): Promise<void> {\r\n this.paymentStartedResults.called = true;\r\n this.paymentStartedResults.datasource = dataSource;\r\n this.paymentStartedResults.options = options;\r\n }\r\n\r\n async payPalPaymentAuthorized(\r\n dataSource: PayPalButtonDataSourceInterface,\r\n payload: paypal.TokenizePayload,\r\n ): Promise<void> {\r\n this.paymentAuthorizedResults.called = true;\r\n this.paymentAuthorizedResults.datasource = dataSource;\r\n this.paymentAuthorizedResults.payload = payload;\r\n }\r\n\r\n async payPalPaymentConfirmed(\r\n dataSource: PayPalButtonDataSourceInterface,\r\n payload: paypal.TokenizePayload,\r\n ): Promise<void> {\r\n this.paymentAuthorizedResults.called = true;\r\n this.paymentAuthorizedResults.datasource = dataSource;\r\n this.paymentAuthorizedResults.payload = payload;\r\n }\r\n\r\n async payPalPaymentCancelled(\r\n dataSource: PayPalButtonDataSourceInterface,\r\n data: object,\r\n ): Promise<void> {\r\n this.paymentCancelledResults.called = true;\r\n this.paymentCancelledResults.datasource = dataSource;\r\n this.paymentCancelledResults.data = data;\r\n }\r\n\r\n async payPalPaymentError(\r\n dataSource: PayPalButtonDataSourceInterface,\r\n error: string,\r\n ): Promise<void> {\r\n this.paymentErrorResults.called = true;\r\n this.paymentErrorResults.datasource = dataSource;\r\n this.paymentErrorResults.error = error;\r\n }\r\n}\r\n"]}
|
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;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
|
+
{"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';\r\nimport {\r\n TokenizePayload,\r\n CancellationData,\r\n} from '../../../../src/@types/paypal-checkout-components';\r\nimport {\r\n PayPalButtonDataSourceDelegate,\r\n PayPalButtonDataSourceInterface,\r\n} from '../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource';\r\n\r\nexport class MockPayPalButtonDataSource implements PayPalButtonDataSourceInterface {\r\n delegate?: PayPalButtonDataSourceDelegate | undefined;\r\n donationInfo: DonationPaymentInfo = new DonationPaymentInfo({\r\n donationType: DonationType.OneTime,\r\n amount: 5,\r\n coverFees: false,\r\n });\r\n async payment(): Promise<string> {\r\n this.delegate?.payPalPaymentStarted(this, {});\r\n return 'foo';\r\n }\r\n async onAuthorize(): Promise<TokenizePayload | undefined> {\r\n this.delegate?.payPalPaymentAuthorized(this, {\r\n nonce: 'foo',\r\n type: 'bar',\r\n details: { email: 'foo@bar.com', payerId: '1234', firstName: 'Joe', lastName: 'Boop' },\r\n });\r\n return undefined;\r\n }\r\n onCancel(data: CancellationData): void {\r\n this.delegate?.payPalPaymentCancelled(this, data);\r\n }\r\n onError(error: string): void {\r\n this.delegate?.payPalPaymentError(this, error);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-paypal-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-paypal-handler.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAK5E,MAAM,OAAO,iBAAiB;IAA9B;QACE,aAAQ,GAAG,IAAI,iBAAiB,CAA2B;YACzD,SAAS,EAAE,GAAsC,EAAE,CACjD,IAAI,OAAO,CAA2B,OAAO,CAAC,EAAE;gBAC9C,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC;SACL,CAAC,CAAC;IASL,CAAC;IAPC,kBAAkB,CAAC,MAIlB;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { MockPayPalClient } from '../../payment-clients/mock-paypal-client';\nimport { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';\nimport { PayPalButtonDataSourceInterface } from '../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource';\nimport { PayPalHandlerInterface } from '../../../../src/braintree-manager/payment-providers/paypal/paypal-interface';\n\nexport class MockPayPalHandler implements PayPalHandlerInterface {\n instance = new PromisedSingleton<braintree.PayPalCheckout>({\n generator: (): Promise<braintree.PayPalCheckout> =>\n new Promise<braintree.PayPalCheckout>(resolve => {\n resolve(new MockPayPalClient());\n }),\n });\n\n renderPayPalButton(params: {\n selector: string;\n style: paypal.ButtonStyle;\n donationInfo: DonationPaymentInfo;\n }): Promise<PayPalButtonDataSourceInterface | undefined> {\n throw new Error('Method not implemented.');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mock-paypal-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-paypal-handler.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAK5E,MAAM,OAAO,iBAAiB;IAA9B;QACE,aAAQ,GAAG,IAAI,iBAAiB,CAA2B;YACzD,SAAS,EAAE,GAAsC,EAAE,CACjD,IAAI,OAAO,CAA2B,OAAO,CAAC,EAAE;gBAC9C,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC;SACL,CAAC,CAAC;IASL,CAAC;IAPC,kBAAkB,CAAC,MAIlB;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { PromisedSingleton } from '@internetarchive/promised-singleton';\r\nimport { MockPayPalClient } from '../../payment-clients/mock-paypal-client';\r\nimport { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';\r\nimport { PayPalButtonDataSourceInterface } from '../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource';\r\nimport { PayPalHandlerInterface } from '../../../../src/braintree-manager/payment-providers/paypal/paypal-interface';\r\n\r\nexport class MockPayPalHandler implements PayPalHandlerInterface {\r\n instance = new PromisedSingleton<braintree.PayPalCheckout>({\r\n generator: (): Promise<braintree.PayPalCheckout> =>\r\n new Promise<braintree.PayPalCheckout>(resolve => {\r\n resolve(new MockPayPalClient());\r\n }),\r\n });\r\n\r\n renderPayPalButton(params: {\r\n selector: string;\r\n style: paypal.ButtonStyle;\r\n donationInfo: DonationPaymentInfo;\r\n }): Promise<PayPalButtonDataSourceInterface | undefined> {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-venmo-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-venmo-handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAG1E,MAAM,OAAO,gBAAgB;IAA7B;QACE,aAAQ,GAAG,IAAI,iBAAiB,CAAkB;YAChD,SAAS,EAAE,GAA6B,EAAE,CACxC,IAAI,OAAO,CAAkB,OAAO,CAAC,EAAE;gBACrC,OAAO,CACL,IAAI,eAAe,CAAC;oBAClB,kBAAkB,EAAE,IAAI;iBACzB,CAAC,CACH,CAAC;YACJ,CAAC,CAAC;SACL,CAAC,CAAC;IAOL,CAAC;IANO,kBAAkB;;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IACD,YAAY;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { MockVenmoClient } from '../../payment-clients/mock-venmo-client';\nimport { VenmoHandlerInterface } from '../../../../src/braintree-manager/payment-providers/venmo-interface';\n\nexport class MockVenmoHandler implements VenmoHandlerInterface {\n instance = new PromisedSingleton<braintree.Venmo>({\n generator: (): Promise<braintree.Venmo> =>\n new Promise<braintree.Venmo>(resolve => {\n resolve(\n new MockVenmoClient({\n isBrowserSupported: true,\n }),\n );\n }),\n });\n async isBrowserSupported(): Promise<boolean> {\n return true;\n }\n startPayment(): Promise<braintree.VenmoTokenizePayload> {\n throw new Error('Method not implemented.');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mock-venmo-handler.js","sourceRoot":"","sources":["../../../../../test/mocks/payment-providers/individual-providers/mock-venmo-handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAG1E,MAAM,OAAO,gBAAgB;IAA7B;QACE,aAAQ,GAAG,IAAI,iBAAiB,CAAkB;YAChD,SAAS,EAAE,GAA6B,EAAE,CACxC,IAAI,OAAO,CAAkB,OAAO,CAAC,EAAE;gBACrC,OAAO,CACL,IAAI,eAAe,CAAC;oBAClB,kBAAkB,EAAE,IAAI;iBACzB,CAAC,CACH,CAAC;YACJ,CAAC,CAAC;SACL,CAAC,CAAC;IAOL,CAAC;IANO,kBAAkB;;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IACD,YAAY;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\r\nimport { MockVenmoClient } from '../../payment-clients/mock-venmo-client';\r\nimport { VenmoHandlerInterface } from '../../../../src/braintree-manager/payment-providers/venmo-interface';\r\n\r\nexport class MockVenmoHandler implements VenmoHandlerInterface {\r\n instance = new PromisedSingleton<braintree.Venmo>({\r\n generator: (): Promise<braintree.Venmo> =>\r\n new Promise<braintree.Venmo>(resolve => {\r\n resolve(\r\n new MockVenmoClient({\r\n isBrowserSupported: true,\r\n }),\r\n );\r\n }),\r\n });\r\n async isBrowserSupported(): Promise<boolean> {\r\n return true;\r\n }\r\n startPayment(): Promise<braintree.VenmoTokenizePayload> {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-payment-providers.js","sourceRoot":"","sources":["../../../../test/mocks/payment-providers/mock-payment-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAUpG,OAAO,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAE3D,MAAM,OAAO,oBAAoB;IAwC/B,YAAY,OAEX;;QAzCD,sBAAiB,GAAG,IAAI,iBAAiB,CAA6B;YACpE,SAAS,EAAE,GAAwC,EAAE,CACnD,IAAI,OAAO,CAA6B,OAAO,CAAC,EAAE;gBAChD,OAAO,CACL,IAAI,qBAAqB,CAAC;oBACxB,WAAW,EAAE,IAAI,CAAC,8BAA8B;iBACjD,CAAC,CACH,CAAC;YACJ,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,oBAAe,GAAG,IAAI,iBAAiB,CAA2B;YAChE,SAAS,EAAE,GAAsC,EAAE,CACjD,IAAI,OAAO,CAA2B,OAAO,CAAC,EAAE;gBAC9C,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,kBAAa,GAAG,IAAI,iBAAiB,CAAyB;YAC5D,SAAS,EAAE,GAAoC,EAAE,CAC/C,IAAI,OAAO,CAAyB,OAAO,CAAC,EAAE;gBAC5C,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,qBAAgB,GAAG,IAAI,iBAAiB,CAA4B;YAClE,SAAS,EAAE,GAAuC,EAAE,CAClD,IAAI,OAAO,CAA4B,OAAO,CAAC,EAAE;gBAC/C,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,iBAAY,GAAG,IAAI,iBAAiB,CAAwB;YAC1D,SAAS,EAAE,GAAmC,EAAE,CAC9C,IAAI,OAAO,CAAwB,OAAO,CAAC,EAAE;gBAC3C,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC;SACL,CAAC,CAAC;QASK,YAAO,GAAG,gBAAgB,EAA0B,CAAC;QAJ3D,IAAI,CAAC,8BAA8B;YACjC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,8BAA8B,mCAAI,8BAA8B,CAAC;IAC9E,CAAC;IAID,EAAE,CACA,KAAQ,EACR,QAAmC;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAGF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { MockVenmoHandler } from './individual-providers/mock-venmo-handler';\nimport { MockCreditCardHandler } from './individual-providers/mock-creditcard-handler';\nimport { MockApplePayHandler } from './individual-providers/mock-applepay-handler';\nimport { MockPayPalHandler } from './individual-providers/mock-paypal-handler';\nimport { MockGooglePayHandler } from './individual-providers/mock-googlepay-handler';\nimport { mockHostedFieldTokenizePayload } from '../payment-clients/mock-hostedfieldtokenizepayload';\nimport {\n PaymentProvidersEvents,\n PaymentProvidersInterface,\n} from '../../../src/braintree-manager/payment-providers-interface';\nimport { CreditCardHandlerInterface } from '../../../src/braintree-manager/payment-providers/credit-card/credit-card-interface';\nimport { ApplePayHandlerInterface } from '../../../src/braintree-manager/payment-providers/apple-pay/apple-pay-interface';\nimport { PayPalHandlerInterface } from '../../../src/braintree-manager/payment-providers/paypal/paypal-interface';\nimport { GooglePayHandlerInterface } from '../../../src/braintree-manager/payment-providers/google-pay-interface';\nimport { VenmoHandlerInterface } from '../../../src/braintree-manager/payment-providers/venmo-interface';\nimport { createNanoEvents, Unsubscribe } from 'nanoevents';\n\nexport class MockPaymentProviders implements PaymentProvidersInterface {\n creditCardHandler = new PromisedSingleton<CreditCardHandlerInterface>({\n generator: (): Promise<CreditCardHandlerInterface> =>\n new Promise<CreditCardHandlerInterface>(resolve => {\n resolve(\n new MockCreditCardHandler({\n mockPayload: this.mockHostedFieldTokenizePayload,\n }),\n );\n }),\n });\n\n applePayHandler = new PromisedSingleton<ApplePayHandlerInterface>({\n generator: (): Promise<ApplePayHandlerInterface> =>\n new Promise<ApplePayHandlerInterface>(resolve => {\n resolve(new MockApplePayHandler());\n }),\n });\n\n paypalHandler = new PromisedSingleton<PayPalHandlerInterface>({\n generator: (): Promise<PayPalHandlerInterface> =>\n new Promise<PayPalHandlerInterface>(resolve => {\n resolve(new MockPayPalHandler());\n }),\n });\n\n googlePayHandler = new PromisedSingleton<GooglePayHandlerInterface>({\n generator: (): Promise<GooglePayHandlerInterface> =>\n new Promise<GooglePayHandlerInterface>(resolve => {\n resolve(new MockGooglePayHandler());\n }),\n });\n\n venmoHandler = new PromisedSingleton<VenmoHandlerInterface>({\n generator: (): Promise<VenmoHandlerInterface> =>\n new Promise<VenmoHandlerInterface>(resolve => {\n resolve(new MockVenmoHandler());\n }),\n });\n\n constructor(options?: {\n mockHostedFieldTokenizePayload?: braintree.HostedFieldsTokenizePayload;\n }) {\n this.mockHostedFieldTokenizePayload =\n options?.mockHostedFieldTokenizePayload ?? mockHostedFieldTokenizePayload;\n }\n\n private emitter = createNanoEvents<PaymentProvidersEvents>();\n\n on<E extends keyof PaymentProvidersEvents>(\n event: E,\n callback: PaymentProvidersEvents[E],\n ): Unsubscribe {\n return this.emitter.on(event, callback);\n }\n\n mockHostedFieldTokenizePayload: braintree.HostedFieldsTokenizePayload;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mock-payment-providers.js","sourceRoot":"","sources":["../../../../test/mocks/payment-providers/mock-payment-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAUpG,OAAO,EAAE,gBAAgB,EAAe,MAAM,YAAY,CAAC;AAE3D,MAAM,OAAO,oBAAoB;IAwC/B,YAAY,OAEX;;QAzCD,sBAAiB,GAAG,IAAI,iBAAiB,CAA6B;YACpE,SAAS,EAAE,GAAwC,EAAE,CACnD,IAAI,OAAO,CAA6B,OAAO,CAAC,EAAE;gBAChD,OAAO,CACL,IAAI,qBAAqB,CAAC;oBACxB,WAAW,EAAE,IAAI,CAAC,8BAA8B;iBACjD,CAAC,CACH,CAAC;YACJ,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,oBAAe,GAAG,IAAI,iBAAiB,CAA2B;YAChE,SAAS,EAAE,GAAsC,EAAE,CACjD,IAAI,OAAO,CAA2B,OAAO,CAAC,EAAE;gBAC9C,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,kBAAa,GAAG,IAAI,iBAAiB,CAAyB;YAC5D,SAAS,EAAE,GAAoC,EAAE,CAC/C,IAAI,OAAO,CAAyB,OAAO,CAAC,EAAE;gBAC5C,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,qBAAgB,GAAG,IAAI,iBAAiB,CAA4B;YAClE,SAAS,EAAE,GAAuC,EAAE,CAClD,IAAI,OAAO,CAA4B,OAAO,CAAC,EAAE;gBAC/C,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC;SACL,CAAC,CAAC;QAEH,iBAAY,GAAG,IAAI,iBAAiB,CAAwB;YAC1D,SAAS,EAAE,GAAmC,EAAE,CAC9C,IAAI,OAAO,CAAwB,OAAO,CAAC,EAAE;gBAC3C,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC;SACL,CAAC,CAAC;QASK,YAAO,GAAG,gBAAgB,EAA0B,CAAC;QAJ3D,IAAI,CAAC,8BAA8B;YACjC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,8BAA8B,mCAAI,8BAA8B,CAAC;IAC9E,CAAC;IAID,EAAE,CACA,KAAQ,EACR,QAAmC;QAEnC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAGF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\r\nimport { MockVenmoHandler } from './individual-providers/mock-venmo-handler';\r\nimport { MockCreditCardHandler } from './individual-providers/mock-creditcard-handler';\r\nimport { MockApplePayHandler } from './individual-providers/mock-applepay-handler';\r\nimport { MockPayPalHandler } from './individual-providers/mock-paypal-handler';\r\nimport { MockGooglePayHandler } from './individual-providers/mock-googlepay-handler';\r\nimport { mockHostedFieldTokenizePayload } from '../payment-clients/mock-hostedfieldtokenizepayload';\r\nimport {\r\n PaymentProvidersEvents,\r\n PaymentProvidersInterface,\r\n} from '../../../src/braintree-manager/payment-providers-interface';\r\nimport { CreditCardHandlerInterface } from '../../../src/braintree-manager/payment-providers/credit-card/credit-card-interface';\r\nimport { ApplePayHandlerInterface } from '../../../src/braintree-manager/payment-providers/apple-pay/apple-pay-interface';\r\nimport { PayPalHandlerInterface } from '../../../src/braintree-manager/payment-providers/paypal/paypal-interface';\r\nimport { GooglePayHandlerInterface } from '../../../src/braintree-manager/payment-providers/google-pay-interface';\r\nimport { VenmoHandlerInterface } from '../../../src/braintree-manager/payment-providers/venmo-interface';\r\nimport { createNanoEvents, Unsubscribe } from 'nanoevents';\r\n\r\nexport class MockPaymentProviders implements PaymentProvidersInterface {\r\n creditCardHandler = new PromisedSingleton<CreditCardHandlerInterface>({\r\n generator: (): Promise<CreditCardHandlerInterface> =>\r\n new Promise<CreditCardHandlerInterface>(resolve => {\r\n resolve(\r\n new MockCreditCardHandler({\r\n mockPayload: this.mockHostedFieldTokenizePayload,\r\n }),\r\n );\r\n }),\r\n });\r\n\r\n applePayHandler = new PromisedSingleton<ApplePayHandlerInterface>({\r\n generator: (): Promise<ApplePayHandlerInterface> =>\r\n new Promise<ApplePayHandlerInterface>(resolve => {\r\n resolve(new MockApplePayHandler());\r\n }),\r\n });\r\n\r\n paypalHandler = new PromisedSingleton<PayPalHandlerInterface>({\r\n generator: (): Promise<PayPalHandlerInterface> =>\r\n new Promise<PayPalHandlerInterface>(resolve => {\r\n resolve(new MockPayPalHandler());\r\n }),\r\n });\r\n\r\n googlePayHandler = new PromisedSingleton<GooglePayHandlerInterface>({\r\n generator: (): Promise<GooglePayHandlerInterface> =>\r\n new Promise<GooglePayHandlerInterface>(resolve => {\r\n resolve(new MockGooglePayHandler());\r\n }),\r\n });\r\n\r\n venmoHandler = new PromisedSingleton<VenmoHandlerInterface>({\r\n generator: (): Promise<VenmoHandlerInterface> =>\r\n new Promise<VenmoHandlerInterface>(resolve => {\r\n resolve(new MockVenmoHandler());\r\n }),\r\n });\r\n\r\n constructor(options?: {\r\n mockHostedFieldTokenizePayload?: braintree.HostedFieldsTokenizePayload;\r\n }) {\r\n this.mockHostedFieldTokenizePayload =\r\n options?.mockHostedFieldTokenizePayload ?? mockHostedFieldTokenizePayload;\r\n }\r\n\r\n private emitter = createNanoEvents<PaymentProvidersEvents>();\r\n\r\n on<E extends keyof PaymentProvidersEvents>(\r\n event: E,\r\n callback: PaymentProvidersEvents[E],\r\n ): Unsubscribe {\r\n return this.emitter.on(event, callback);\r\n }\r\n\r\n mockHostedFieldTokenizePayload: braintree.HostedFieldsTokenizePayload;\r\n}\r\n"]}
|
|
@@ -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":["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"]}
|
|
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';\r\n\r\nimport { BraintreeManager } from '../../src/braintree-manager/braintree-manager';\r\nimport { HostingEnvironment } from '../../src/braintree-manager/braintree-interfaces';\r\nimport { MockPaymentClients } from '../mocks/mock-payment-clients';\r\nimport { MockEndpointManager } from '../mocks/mock-endpoint-manager';\r\nimport { mockHostedFieldConfig } from '../mocks/mock-hosted-fields-config';\r\nimport { PaymentProvider, DonationType } from '@internetarchive/donation-form-data-models';\r\nimport { mockBillingInfo } from '../mocks/models/mock-billing-info';\r\nimport { mockCustomerInfo } from '../mocks/models/mock-customer-info';\r\nimport { MockDeviceDataCollector } from '../mocks/payment-clients/mock-data-collector';\r\nimport { mockSuccessResponse } from '../mocks/models/mock-success-response';\r\nimport { MockDonationInfo } from '../mocks/mock-donation-info';\r\n\r\ndescribe('Braintree Manager', () => {\r\n it('can be initialized', async () => {\r\n const paymentClients = new MockPaymentClients();\r\n const endpointManager = new MockEndpointManager();\r\n\r\n const braintreeManager = new BraintreeManager({\r\n authorizationToken: 'foo',\r\n paymentClients,\r\n endpointManager,\r\n hostedFieldConfig: mockHostedFieldConfig,\r\n hostingEnvironment: HostingEnvironment.Development,\r\n });\r\n\r\n expect(braintreeManager).to.not.equal(undefined);\r\n });\r\n\r\n it('collects device data on startup and submits it', async () => {\r\n const paymentClients = new MockPaymentClients();\r\n const endpointManager = new MockEndpointManager();\r\n\r\n const braintreeManager = new BraintreeManager({\r\n authorizationToken: 'foo',\r\n paymentClients,\r\n endpointManager,\r\n hostedFieldConfig: mockHostedFieldConfig,\r\n hostingEnvironment: HostingEnvironment.Development,\r\n });\r\n\r\n await braintreeManager.startup();\r\n\r\n await braintreeManager.submitDonation({\r\n nonce: 'boop',\r\n paymentProvider: PaymentProvider.CreditCard,\r\n donationInfo: new MockDonationInfo(),\r\n billingInfo: mockBillingInfo,\r\n customerInfo: mockCustomerInfo,\r\n });\r\n\r\n expect(endpointManager.requestSubmitted?.deviceData).to.equal(\r\n MockDeviceDataCollector.mockDeviceData,\r\n );\r\n });\r\n\r\n it('does not collect device data if startup not called', async () => {\r\n const paymentClients = new MockPaymentClients();\r\n const endpointManager = new MockEndpointManager();\r\n\r\n const braintreeManager = new BraintreeManager({\r\n authorizationToken: 'foo',\r\n paymentClients,\r\n endpointManager,\r\n hostedFieldConfig: mockHostedFieldConfig,\r\n hostingEnvironment: HostingEnvironment.Development,\r\n });\r\n\r\n await braintreeManager.submitDonation({\r\n nonce: 'boop',\r\n paymentProvider: PaymentProvider.CreditCard,\r\n donationInfo: new MockDonationInfo(),\r\n billingInfo: mockBillingInfo,\r\n customerInfo: mockCustomerInfo,\r\n });\r\n\r\n expect(endpointManager.requestSubmitted?.deviceData).to.equal(undefined);\r\n });\r\n\r\n it('can properly set referrer, origin, and logged in user and submits them to the endpoint', async () => {\r\n const paymentClients = new MockPaymentClients();\r\n const endpointManager = new MockEndpointManager();\r\n\r\n const braintreeManager = new BraintreeManager({\r\n authorizationToken: 'foo',\r\n paymentClients,\r\n endpointManager,\r\n hostedFieldConfig: mockHostedFieldConfig,\r\n hostingEnvironment: HostingEnvironment.Development,\r\n });\r\n\r\n await braintreeManager.submitDonation({\r\n nonce: 'boop',\r\n paymentProvider: PaymentProvider.CreditCard,\r\n donationInfo: new MockDonationInfo(),\r\n billingInfo: mockBillingInfo,\r\n customerInfo: mockCustomerInfo,\r\n });\r\n\r\n // verify they're empty\r\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal(undefined);\r\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal(undefined);\r\n\r\n braintreeManager.setLoggedInUser('foo-user');\r\n braintreeManager.setReferrer('foo-referrer');\r\n braintreeManager.setOrigin('foo-origin');\r\n\r\n await braintreeManager.submitDonation({\r\n nonce: 'boop',\r\n paymentProvider: PaymentProvider.CreditCard,\r\n donationInfo: new MockDonationInfo(),\r\n billingInfo: mockBillingInfo,\r\n customerInfo: mockCustomerInfo,\r\n });\r\n\r\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal('foo-referrer');\r\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal('foo-user');\r\n expect(endpointManager.requestSubmitted?.customFields.origin).to.equal('foo-origin');\r\n });\r\n\r\n it('can be initialized with referrer, origin, and logged in user and submits them to the endpoint', async () => {\r\n const paymentClients = new MockPaymentClients();\r\n const endpointManager = new MockEndpointManager();\r\n\r\n const braintreeManager = new BraintreeManager({\r\n authorizationToken: 'foo',\r\n paymentClients,\r\n endpointManager,\r\n hostedFieldConfig: mockHostedFieldConfig,\r\n hostingEnvironment: HostingEnvironment.Development,\r\n loggedInUser: 'foo-user',\r\n referrer: 'foo-referrer',\r\n origin: 'foo-origin',\r\n });\r\n\r\n await braintreeManager.submitDonation({\r\n nonce: 'boop',\r\n paymentProvider: PaymentProvider.CreditCard,\r\n donationInfo: new MockDonationInfo(),\r\n billingInfo: mockBillingInfo,\r\n customerInfo: mockCustomerInfo,\r\n });\r\n\r\n expect(endpointManager.requestSubmitted?.customFields.referrer).to.equal('foo-referrer');\r\n expect(endpointManager.requestSubmitted?.customFields.logged_in_user).to.equal('foo-user');\r\n expect(endpointManager.requestSubmitted?.customFields.origin).to.equal('foo-origin');\r\n });\r\n\r\n it('properly submits an upsell donation', async () => {\r\n const paymentClients = new MockPaymentClients();\r\n const endpointManager = new MockEndpointManager();\r\n\r\n const braintreeManager = new BraintreeManager({\r\n authorizationToken: 'foo',\r\n paymentClients,\r\n endpointManager,\r\n hostedFieldConfig: mockHostedFieldConfig,\r\n hostingEnvironment: HostingEnvironment.Development,\r\n });\r\n\r\n await braintreeManager.submitUpsellDonation({\r\n oneTimeDonationResponse: mockSuccessResponse,\r\n amount: 3.5,\r\n });\r\n\r\n const requestSubmitted = endpointManager.requestSubmitted;\r\n\r\n expect(requestSubmitted?.donationType).to.equal(DonationType.Upsell);\r\n expect(requestSubmitted?.amount).to.equal(3.5);\r\n expect(requestSubmitted?.customFields.fee_amount_covered).to.equal(0);\r\n });\r\n\r\n it('handles successful donation', async () => {\r\n const paymentClients = new MockPaymentClients();\r\n const endpointManager = new MockEndpointManager();\r\n\r\n const braintreeManager = new BraintreeManager({\r\n authorizationToken: 'foo',\r\n paymentClients,\r\n endpointManager,\r\n hostedFieldConfig: mockHostedFieldConfig,\r\n hostingEnvironment: HostingEnvironment.Development,\r\n });\r\n\r\n await braintreeManager.donationSuccessful({\r\n successResponse: mockSuccessResponse,\r\n });\r\n\r\n const successResponseSubmitted = endpointManager.successResponseSubmitted;\r\n\r\n expect(successResponseSubmitted?.donationType).to.equal(DonationType.OneTime);\r\n expect(successResponseSubmitted?.amount).to.equal(5);\r\n });\r\n});\r\n"]}
|
|
@@ -19,16 +19,16 @@ describe('Donation Form Controller', () => {
|
|
|
19
19
|
delete window['grecaptcha'];
|
|
20
20
|
});
|
|
21
21
|
it('has no shadowRoot', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
-
const el = (yield fixture(html `
|
|
23
|
-
<donation-form-controller></donation-form-controller>
|
|
22
|
+
const el = (yield fixture(html `
|
|
23
|
+
<donation-form-controller></donation-form-controller>
|
|
24
24
|
`));
|
|
25
25
|
expect(el.shadowRoot).to.equal(null);
|
|
26
26
|
}));
|
|
27
27
|
it('can submit a donation', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
28
|
var _a, _b, _c, _d;
|
|
29
29
|
const mockAnalytics = new MockAnalyticsManager();
|
|
30
|
-
const controller = (yield fixture(html `
|
|
31
|
-
<donation-form-controller .analyticsHandler=${mockAnalytics}> </donation-form-controller>
|
|
30
|
+
const controller = (yield fixture(html `
|
|
31
|
+
<donation-form-controller .analyticsHandler=${mockAnalytics}> </donation-form-controller>
|
|
32
32
|
`));
|
|
33
33
|
// configure the donation-form-controller
|
|
34
34
|
const recaptchaElement = (yield fixture(html ` <div></div> `));
|
|
@@ -78,13 +78,13 @@ describe('Donation Form Controller', () => {
|
|
|
78
78
|
var _a, _b;
|
|
79
79
|
const mockAnalytics = new MockAnalyticsManager();
|
|
80
80
|
const analyticsCategory = 'FooCategory';
|
|
81
|
-
(yield fixture(html `
|
|
82
|
-
<donation-form-controller
|
|
83
|
-
?showCreditCardButtonText=${true}
|
|
84
|
-
.analyticsCategory=${analyticsCategory}
|
|
85
|
-
.analyticsHandler=${mockAnalytics}
|
|
86
|
-
>
|
|
87
|
-
</donation-form-controller>
|
|
81
|
+
(yield fixture(html `
|
|
82
|
+
<donation-form-controller
|
|
83
|
+
?showCreditCardButtonText=${true}
|
|
84
|
+
.analyticsCategory=${analyticsCategory}
|
|
85
|
+
.analyticsHandler=${mockAnalytics}
|
|
86
|
+
>
|
|
87
|
+
</donation-form-controller>
|
|
88
88
|
`));
|
|
89
89
|
expect((_a = mockAnalytics.sendEventOptions) === null || _a === void 0 ? void 0 : _a.category).to.equal(analyticsCategory);
|
|
90
90
|
expect((_b = mockAnalytics.sendEventOptions) === null || _b === void 0 ? void 0 : _b.action).to.equal('Viewed');
|
|
@@ -93,13 +93,13 @@ describe('Donation Form Controller', () => {
|
|
|
93
93
|
var _a, _b, _c, _d, _e;
|
|
94
94
|
const mockAnalytics = new MockAnalyticsManager();
|
|
95
95
|
const analyticsCategory = 'FooCategory';
|
|
96
|
-
const controller = (yield fixture(html `
|
|
97
|
-
<donation-form-controller
|
|
98
|
-
?showCreditCardButtonText=${true}
|
|
99
|
-
.analyticsCategory=${analyticsCategory}
|
|
100
|
-
.analyticsHandler=${mockAnalytics}
|
|
101
|
-
>
|
|
102
|
-
</donation-form-controller>
|
|
96
|
+
const controller = (yield fixture(html `
|
|
97
|
+
<donation-form-controller
|
|
98
|
+
?showCreditCardButtonText=${true}
|
|
99
|
+
.analyticsCategory=${analyticsCategory}
|
|
100
|
+
.analyticsHandler=${mockAnalytics}
|
|
101
|
+
>
|
|
102
|
+
</donation-form-controller>
|
|
103
103
|
`));
|
|
104
104
|
const donationForm = controller.querySelector('donation-form');
|
|
105
105
|
const donationHeader = (_a = donationForm.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('donation-form-header');
|
|
@@ -114,13 +114,13 @@ describe('Donation Form Controller', () => {
|
|
|
114
114
|
var _a, _b, _c, _d, _e;
|
|
115
115
|
const mockAnalytics = new MockAnalyticsManager();
|
|
116
116
|
const analyticsCategory = 'FooCategory';
|
|
117
|
-
const controller = (yield fixture(html `
|
|
118
|
-
<donation-form-controller
|
|
119
|
-
?showCreditCardButtonText=${true}
|
|
120
|
-
.analyticsCategory=${analyticsCategory}
|
|
121
|
-
.analyticsHandler=${mockAnalytics}
|
|
122
|
-
>
|
|
123
|
-
</donation-form-controller>
|
|
117
|
+
const controller = (yield fixture(html `
|
|
118
|
+
<donation-form-controller
|
|
119
|
+
?showCreditCardButtonText=${true}
|
|
120
|
+
.analyticsCategory=${analyticsCategory}
|
|
121
|
+
.analyticsHandler=${mockAnalytics}
|
|
122
|
+
>
|
|
123
|
+
</donation-form-controller>
|
|
124
124
|
`));
|
|
125
125
|
const donationForm = controller.querySelector('donation-form');
|
|
126
126
|
const paymentSelector = (_a = donationForm.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('payment-selector');
|
|
@@ -145,13 +145,13 @@ describe('Donation Form Controller', () => {
|
|
|
145
145
|
var _a, _b;
|
|
146
146
|
const mockAnalytics = new MockAnalyticsManager();
|
|
147
147
|
const analyticsCategory = 'FooCategory';
|
|
148
|
-
const controller = (yield fixture(html `
|
|
149
|
-
<donation-form-controller
|
|
150
|
-
?showCreditCardButtonText=${true}
|
|
151
|
-
.analyticsCategory=${analyticsCategory}
|
|
152
|
-
.analyticsHandler=${mockAnalytics}
|
|
153
|
-
>
|
|
154
|
-
</donation-form-controller>
|
|
148
|
+
const controller = (yield fixture(html `
|
|
149
|
+
<donation-form-controller
|
|
150
|
+
?showCreditCardButtonText=${true}
|
|
151
|
+
.analyticsCategory=${analyticsCategory}
|
|
152
|
+
.analyticsHandler=${mockAnalytics}
|
|
153
|
+
>
|
|
154
|
+
</donation-form-controller>
|
|
155
155
|
`));
|
|
156
156
|
const donationForm = controller.querySelector('donation-form');
|
|
157
157
|
const flowHandlers = new MockPaymentFlowHandlers();
|
|
@@ -166,13 +166,13 @@ describe('Donation Form Controller', () => {
|
|
|
166
166
|
var _a, _b;
|
|
167
167
|
const mockAnalytics = new MockAnalyticsManager();
|
|
168
168
|
const analyticsCategory = 'FooCategory';
|
|
169
|
-
const controller = (yield fixture(html `
|
|
170
|
-
<donation-form-controller
|
|
171
|
-
?showCreditCardButtonText=${true}
|
|
172
|
-
.analyticsCategory=${analyticsCategory}
|
|
173
|
-
.analyticsHandler=${mockAnalytics}
|
|
174
|
-
>
|
|
175
|
-
</donation-form-controller>
|
|
169
|
+
const controller = (yield fixture(html `
|
|
170
|
+
<donation-form-controller
|
|
171
|
+
?showCreditCardButtonText=${true}
|
|
172
|
+
.analyticsCategory=${analyticsCategory}
|
|
173
|
+
.analyticsHandler=${mockAnalytics}
|
|
174
|
+
>
|
|
175
|
+
</donation-form-controller>
|
|
176
176
|
`));
|
|
177
177
|
const donationForm = controller.querySelector('donation-form');
|
|
178
178
|
const flowHandlers = new MockPaymentFlowHandlers();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"donation-form-controller.test.js","sourceRoot":"","sources":["../../../test/tests/donation-form-controller.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';\n\nimport '../../src/donation-form-controller';\nimport { DonationFormController } from '../../src/donation-form-controller';\nimport { MockGrecaptcha, MockGrecaptchaMode } from '../mocks/payment-clients/mock-grecaptcha';\nimport { HostingEnvironment } from '../../src/braintree-manager/braintree-interfaces';\nimport { MockEndpointManager } from '../mocks/mock-endpoint-manager';\nimport { MockPaymentClients } from '../mocks/mock-payment-clients';\nimport { ContactForm } from '../../src/form-elements/contact-form/contact-form';\nimport { fillInContactForm } from '../helpers/fillInContactForm';\nimport { promisedSleep } from '../../src/util/promisedSleep';\nimport { MockModalManager } from '../mocks/mock-modal-manager';\nimport { MockHostedFieldsClient } from '../mocks/payment-clients/mock-hostedfields-client';\nimport { DonationForm } from '../../src/donation-form';\nimport { PaymentSelector } from '../../src/form-elements/payment-selector';\nimport { DonationFormHeader } from '../../src/form-elements/header/donation-form-header';\nimport { DonationFormEditDonation } from '@internetarchive/donation-form-edit-donation';\nimport { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';\nimport { MockAnalyticsManager } from '@internetarchive/analytics-manager/dist/test/mock-analytics-manager';\n\ndescribe('Donation Form Controller', () => {\n beforeEach(() => {\n (window['grecaptcha' as any] as any) = new MockGrecaptcha(MockGrecaptchaMode.Success);\n });\n\n afterEach(() => {\n delete window['grecaptcha' as any];\n });\n\n it('has no shadowRoot', async () => {\n const el = (await fixture(html`\n <donation-form-controller></donation-form-controller>\n `)) as DonationFormController;\n\n expect(el.shadowRoot).to.equal(null);\n });\n\n it('can submit a donation', async () => {\n const mockAnalytics = new MockAnalyticsManager();\n const controller = (await fixture(html`\n <donation-form-controller .analyticsHandler=${mockAnalytics}> </donation-form-controller>\n `)) as DonationFormController;\n\n // configure the donation-form-controller\n const recaptchaElement = (await fixture(html` <div></div> `)) as HTMLElement;\n const endpointManager = new MockEndpointManager();\n const paymentClients = new MockPaymentClients();\n const modalManager = new MockModalManager();\n controller.paymentClients = paymentClients;\n controller.modalManager = modalManager;\n controller.environment = HostingEnvironment.Development;\n controller.recaptchaElement = recaptchaElement;\n controller.endpointManager = endpointManager;\n controller.braintreeAuthToken = 'foo';\n controller.recaptchaSiteKey = 'bar';\n controller.venmoProfileId = 'baz';\n controller.referrer = 'test-referrer';\n controller.loggedInUser = 'test-user';\n\n // grab some internal elements to interact with\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\n const paymentSelector: PaymentSelector = donationForm?.shadowRoot?.querySelector(\n 'payment-selector',\n ) as PaymentSelector;\n const creditCardButton = paymentSelector?.shadowRoot?.querySelector('.credit-card-button');\n\n // click on the credit card button\n const ccClickEvent = new MouseEvent('click');\n creditCardButton?.dispatchEvent(ccClickEvent);\n\n // clicking on the credit card button will show the contact form so wait for it to be updated\n await elementUpdated(donationForm);\n await promisedSleep(100);\n const contactForm = document.querySelector('contact-form') as ContactForm;\n await fillInContactForm(contactForm);\n\n // verify the Donate button is still disabled\n const donateButton = donationForm?.shadowRoot?.querySelector(\n '#donate-button',\n ) as HTMLButtonElement;\n\n // simulates after the user has input all of the credit card fields\n const hostedFields = (await paymentClients.hostedFields.get()) as MockHostedFieldsClient;\n hostedFields.emitValidityChangedEvent(true);\n await promisedSleep(100);\n\n // verify that the donate button has become enabled and no request has been submitted\n expect(donateButton.disabled).to.equal(false);\n expect(endpointManager.requestSubmitted).to.equal(undefined);\n\n // click the donate button\n const donateClickEvent = new MouseEvent('click');\n donateButton?.dispatchEvent(donateClickEvent);\n await promisedSleep(100);\n\n expect(mockAnalytics.sendEventOptions?.action).to.equal('PaymentFlowStarted');\n\n // verify that a payload has been requested to be submitted to the backend\n expect(endpointManager.requestSubmitted).to.not.equal(undefined);\n });\n\n it('sends Viewed analytics when it first updates', async () => {\n const mockAnalytics = new MockAnalyticsManager();\n const analyticsCategory = 'FooCategory';\n (await fixture(html`\n <donation-form-controller\n ?showCreditCardButtonText=${true}\n .analyticsCategory=${analyticsCategory}\n .analyticsHandler=${mockAnalytics}\n >\n </donation-form-controller>\n `)) as DonationFormController;\n expect(mockAnalytics.sendEventOptions?.category).to.equal(analyticsCategory);\n expect(mockAnalytics.sendEventOptions?.action).to.equal('Viewed');\n });\n\n it('sends DonationInfoChanged analytics when donation info changes', async () => {\n const mockAnalytics = new MockAnalyticsManager();\n const analyticsCategory = 'FooCategory';\n const controller = (await fixture(html`\n <donation-form-controller\n ?showCreditCardButtonText=${true}\n .analyticsCategory=${analyticsCategory}\n .analyticsHandler=${mockAnalytics}\n >\n </donation-form-controller>\n `)) as DonationFormController;\n\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\n const donationHeader = donationForm.shadowRoot?.querySelector(\n 'donation-form-header',\n ) as DonationFormHeader;\n const editDonation = donationHeader?.shadowRoot?.querySelector(\n 'donation-form-edit-donation',\n ) as DonationFormEditDonation;\n const monthlyOption = editDonation?.shadowRoot?.querySelector('#donationType-monthly-option');\n const clickEvent = new MouseEvent('click');\n monthlyOption?.dispatchEvent(clickEvent);\n\n expect(mockAnalytics.sendEventOptions?.category).to.equal(analyticsCategory);\n expect(mockAnalytics.sendEventOptions?.action).to.equal('DonationInfoChanged');\n });\n\n it('sends ProviderSelected analytics', async () => {\n const mockAnalytics = new MockAnalyticsManager();\n const analyticsCategory = 'FooCategory';\n const controller = (await fixture(html`\n <donation-form-controller\n ?showCreditCardButtonText=${true}\n .analyticsCategory=${analyticsCategory}\n .analyticsHandler=${mockAnalytics}\n >\n </donation-form-controller>\n `)) as DonationFormController;\n\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\n const paymentSelector = donationForm.shadowRoot?.querySelector(\n 'payment-selector',\n ) as PaymentSelector;\n\n // on the first payment provider chosen, the previousPaymentProvider is undefined\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\n '.credit-card-button',\n ) as HTMLButtonElement;\n setTimeout(() => {\n const ccClickEvent = new MouseEvent('click');\n creditCardButton.dispatchEvent(ccClickEvent);\n });\n await oneEvent(donationForm, 'paymentProviderSelected');\n expect(mockAnalytics.sendEventOptions?.action).to.equal('ProviderFirstSelected-CreditCard');\n\n // on subsequent payment provider choices, the previousPaymentProvider is populated\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\n setTimeout(() => {\n const venmoClickEvent = new MouseEvent('click');\n venmoButton.dispatchEvent(venmoClickEvent);\n });\n await oneEvent(donationForm, 'paymentProviderSelected');\n expect(mockAnalytics.sendEventOptions?.action).to.equal('ProviderChangedTo-Venmo');\n });\n\n it('sends PaymentFlowCancelled analytics', async () => {\n const mockAnalytics = new MockAnalyticsManager();\n const analyticsCategory = 'FooCategory';\n const controller = (await fixture(html`\n <donation-form-controller\n ?showCreditCardButtonText=${true}\n .analyticsCategory=${analyticsCategory}\n .analyticsHandler=${mockAnalytics}\n >\n </donation-form-controller>\n `)) as DonationFormController;\n\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\n const flowHandlers = new MockPaymentFlowHandlers();\n donationForm.paymentFlowHandlers = flowHandlers;\n await elementUpdated(donationForm);\n await promisedSleep(250);\n flowHandlers.paypalHandler.emitPaymentCancelledEvent();\n expect(mockAnalytics.sendEventOptions?.action).to.equal('PaymentFlowCancelled');\n expect(mockAnalytics.sendEventOptions?.label).to.equal('PayPal');\n });\n\n it('sends PaymentFlowError analytics', async () => {\n const mockAnalytics = new MockAnalyticsManager();\n const analyticsCategory = 'FooCategory';\n const controller = (await fixture(html`\n <donation-form-controller\n ?showCreditCardButtonText=${true}\n .analyticsCategory=${analyticsCategory}\n .analyticsHandler=${mockAnalytics}\n >\n </donation-form-controller>\n `)) as DonationFormController;\n\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\n const flowHandlers = new MockPaymentFlowHandlers();\n donationForm.paymentFlowHandlers = flowHandlers;\n await elementUpdated(donationForm);\n await promisedSleep(250);\n flowHandlers.paypalHandler.emitPaymentErrorEvent();\n expect(mockAnalytics.sendEventOptions?.action).to.equal('PaymentFlowError');\n expect(mockAnalytics.sendEventOptions?.label).to.equal('PayPal-foo-error');\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"donation-form-controller.test.js","sourceRoot":"","sources":["../../../test/tests/donation-form-controller.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';\r\n\r\nimport '../../src/donation-form-controller';\r\nimport { DonationFormController } from '../../src/donation-form-controller';\r\nimport { MockGrecaptcha, MockGrecaptchaMode } from '../mocks/payment-clients/mock-grecaptcha';\r\nimport { HostingEnvironment } from '../../src/braintree-manager/braintree-interfaces';\r\nimport { MockEndpointManager } from '../mocks/mock-endpoint-manager';\r\nimport { MockPaymentClients } from '../mocks/mock-payment-clients';\r\nimport { ContactForm } from '../../src/form-elements/contact-form/contact-form';\r\nimport { fillInContactForm } from '../helpers/fillInContactForm';\r\nimport { promisedSleep } from '../../src/util/promisedSleep';\r\nimport { MockModalManager } from '../mocks/mock-modal-manager';\r\nimport { MockHostedFieldsClient } from '../mocks/payment-clients/mock-hostedfields-client';\r\nimport { DonationForm } from '../../src/donation-form';\r\nimport { PaymentSelector } from '../../src/form-elements/payment-selector';\r\nimport { DonationFormHeader } from '../../src/form-elements/header/donation-form-header';\r\nimport { DonationFormEditDonation } from '@internetarchive/donation-form-edit-donation';\r\nimport { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';\r\nimport { MockAnalyticsManager } from '@internetarchive/analytics-manager/dist/test/mock-analytics-manager';\r\n\r\ndescribe('Donation Form Controller', () => {\r\n beforeEach(() => {\r\n (window['grecaptcha' as any] as any) = new MockGrecaptcha(MockGrecaptchaMode.Success);\r\n });\r\n\r\n afterEach(() => {\r\n delete window['grecaptcha' as any];\r\n });\r\n\r\n it('has no shadowRoot', async () => {\r\n const el = (await fixture(html`\r\n <donation-form-controller></donation-form-controller>\r\n `)) as DonationFormController;\r\n\r\n expect(el.shadowRoot).to.equal(null);\r\n });\r\n\r\n it('can submit a donation', async () => {\r\n const mockAnalytics = new MockAnalyticsManager();\r\n const controller = (await fixture(html`\r\n <donation-form-controller .analyticsHandler=${mockAnalytics}> </donation-form-controller>\r\n `)) as DonationFormController;\r\n\r\n // configure the donation-form-controller\r\n const recaptchaElement = (await fixture(html` <div></div> `)) as HTMLElement;\r\n const endpointManager = new MockEndpointManager();\r\n const paymentClients = new MockPaymentClients();\r\n const modalManager = new MockModalManager();\r\n controller.paymentClients = paymentClients;\r\n controller.modalManager = modalManager;\r\n controller.environment = HostingEnvironment.Development;\r\n controller.recaptchaElement = recaptchaElement;\r\n controller.endpointManager = endpointManager;\r\n controller.braintreeAuthToken = 'foo';\r\n controller.recaptchaSiteKey = 'bar';\r\n controller.venmoProfileId = 'baz';\r\n controller.referrer = 'test-referrer';\r\n controller.loggedInUser = 'test-user';\r\n\r\n // grab some internal elements to interact with\r\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\r\n const paymentSelector: PaymentSelector = donationForm?.shadowRoot?.querySelector(\r\n 'payment-selector',\r\n ) as PaymentSelector;\r\n const creditCardButton = paymentSelector?.shadowRoot?.querySelector('.credit-card-button');\r\n\r\n // click on the credit card button\r\n const ccClickEvent = new MouseEvent('click');\r\n creditCardButton?.dispatchEvent(ccClickEvent);\r\n\r\n // clicking on the credit card button will show the contact form so wait for it to be updated\r\n await elementUpdated(donationForm);\r\n await promisedSleep(100);\r\n const contactForm = document.querySelector('contact-form') as ContactForm;\r\n await fillInContactForm(contactForm);\r\n\r\n // verify the Donate button is still disabled\r\n const donateButton = donationForm?.shadowRoot?.querySelector(\r\n '#donate-button',\r\n ) as HTMLButtonElement;\r\n\r\n // simulates after the user has input all of the credit card fields\r\n const hostedFields = (await paymentClients.hostedFields.get()) as MockHostedFieldsClient;\r\n hostedFields.emitValidityChangedEvent(true);\r\n await promisedSleep(100);\r\n\r\n // verify that the donate button has become enabled and no request has been submitted\r\n expect(donateButton.disabled).to.equal(false);\r\n expect(endpointManager.requestSubmitted).to.equal(undefined);\r\n\r\n // click the donate button\r\n const donateClickEvent = new MouseEvent('click');\r\n donateButton?.dispatchEvent(donateClickEvent);\r\n await promisedSleep(100);\r\n\r\n expect(mockAnalytics.sendEventOptions?.action).to.equal('PaymentFlowStarted');\r\n\r\n // verify that a payload has been requested to be submitted to the backend\r\n expect(endpointManager.requestSubmitted).to.not.equal(undefined);\r\n });\r\n\r\n it('sends Viewed analytics when it first updates', async () => {\r\n const mockAnalytics = new MockAnalyticsManager();\r\n const analyticsCategory = 'FooCategory';\r\n (await fixture(html`\r\n <donation-form-controller\r\n ?showCreditCardButtonText=${true}\r\n .analyticsCategory=${analyticsCategory}\r\n .analyticsHandler=${mockAnalytics}\r\n >\r\n </donation-form-controller>\r\n `)) as DonationFormController;\r\n expect(mockAnalytics.sendEventOptions?.category).to.equal(analyticsCategory);\r\n expect(mockAnalytics.sendEventOptions?.action).to.equal('Viewed');\r\n });\r\n\r\n it('sends DonationInfoChanged analytics when donation info changes', async () => {\r\n const mockAnalytics = new MockAnalyticsManager();\r\n const analyticsCategory = 'FooCategory';\r\n const controller = (await fixture(html`\r\n <donation-form-controller\r\n ?showCreditCardButtonText=${true}\r\n .analyticsCategory=${analyticsCategory}\r\n .analyticsHandler=${mockAnalytics}\r\n >\r\n </donation-form-controller>\r\n `)) as DonationFormController;\r\n\r\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\r\n const donationHeader = donationForm.shadowRoot?.querySelector(\r\n 'donation-form-header',\r\n ) as DonationFormHeader;\r\n const editDonation = donationHeader?.shadowRoot?.querySelector(\r\n 'donation-form-edit-donation',\r\n ) as DonationFormEditDonation;\r\n const monthlyOption = editDonation?.shadowRoot?.querySelector('#donationType-monthly-option');\r\n const clickEvent = new MouseEvent('click');\r\n monthlyOption?.dispatchEvent(clickEvent);\r\n\r\n expect(mockAnalytics.sendEventOptions?.category).to.equal(analyticsCategory);\r\n expect(mockAnalytics.sendEventOptions?.action).to.equal('DonationInfoChanged');\r\n });\r\n\r\n it('sends ProviderSelected analytics', async () => {\r\n const mockAnalytics = new MockAnalyticsManager();\r\n const analyticsCategory = 'FooCategory';\r\n const controller = (await fixture(html`\r\n <donation-form-controller\r\n ?showCreditCardButtonText=${true}\r\n .analyticsCategory=${analyticsCategory}\r\n .analyticsHandler=${mockAnalytics}\r\n >\r\n </donation-form-controller>\r\n `)) as DonationFormController;\r\n\r\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\r\n const paymentSelector = donationForm.shadowRoot?.querySelector(\r\n 'payment-selector',\r\n ) as PaymentSelector;\r\n\r\n // on the first payment provider chosen, the previousPaymentProvider is undefined\r\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\r\n '.credit-card-button',\r\n ) as HTMLButtonElement;\r\n setTimeout(() => {\r\n const ccClickEvent = new MouseEvent('click');\r\n creditCardButton.dispatchEvent(ccClickEvent);\r\n });\r\n await oneEvent(donationForm, 'paymentProviderSelected');\r\n expect(mockAnalytics.sendEventOptions?.action).to.equal('ProviderFirstSelected-CreditCard');\r\n\r\n // on subsequent payment provider choices, the previousPaymentProvider is populated\r\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\r\n setTimeout(() => {\r\n const venmoClickEvent = new MouseEvent('click');\r\n venmoButton.dispatchEvent(venmoClickEvent);\r\n });\r\n await oneEvent(donationForm, 'paymentProviderSelected');\r\n expect(mockAnalytics.sendEventOptions?.action).to.equal('ProviderChangedTo-Venmo');\r\n });\r\n\r\n it('sends PaymentFlowCancelled analytics', async () => {\r\n const mockAnalytics = new MockAnalyticsManager();\r\n const analyticsCategory = 'FooCategory';\r\n const controller = (await fixture(html`\r\n <donation-form-controller\r\n ?showCreditCardButtonText=${true}\r\n .analyticsCategory=${analyticsCategory}\r\n .analyticsHandler=${mockAnalytics}\r\n >\r\n </donation-form-controller>\r\n `)) as DonationFormController;\r\n\r\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\r\n const flowHandlers = new MockPaymentFlowHandlers();\r\n donationForm.paymentFlowHandlers = flowHandlers;\r\n await elementUpdated(donationForm);\r\n await promisedSleep(250);\r\n flowHandlers.paypalHandler.emitPaymentCancelledEvent();\r\n expect(mockAnalytics.sendEventOptions?.action).to.equal('PaymentFlowCancelled');\r\n expect(mockAnalytics.sendEventOptions?.label).to.equal('PayPal');\r\n });\r\n\r\n it('sends PaymentFlowError analytics', async () => {\r\n const mockAnalytics = new MockAnalyticsManager();\r\n const analyticsCategory = 'FooCategory';\r\n const controller = (await fixture(html`\r\n <donation-form-controller\r\n ?showCreditCardButtonText=${true}\r\n .analyticsCategory=${analyticsCategory}\r\n .analyticsHandler=${mockAnalytics}\r\n >\r\n </donation-form-controller>\r\n `)) as DonationFormController;\r\n\r\n const donationForm: DonationForm = controller.querySelector('donation-form') as DonationForm;\r\n const flowHandlers = new MockPaymentFlowHandlers();\r\n donationForm.paymentFlowHandlers = flowHandlers;\r\n await elementUpdated(donationForm);\r\n await promisedSleep(250);\r\n flowHandlers.paypalHandler.emitPaymentErrorEvent();\r\n expect(mockAnalytics.sendEventOptions?.action).to.equal('PaymentFlowError');\r\n expect(mockAnalytics.sendEventOptions?.label).to.equal('PayPal-foo-error');\r\n });\r\n});\r\n"]}
|
|
@@ -15,8 +15,8 @@ describe('Donation Form', () => {
|
|
|
15
15
|
}));
|
|
16
16
|
it('updates donationInfo when user changes donation info', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
17
|
var _a, _b, _c, _d;
|
|
18
|
-
const el = (yield fixture(html `
|
|
19
|
-
<donation-form .donationInfo=${new MockDonationInfo()}></donation-form>
|
|
18
|
+
const el = (yield fixture(html `
|
|
19
|
+
<donation-form .donationInfo=${new MockDonationInfo()}></donation-form>
|
|
20
20
|
`));
|
|
21
21
|
const donationHeader = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('donation-form-header');
|
|
22
22
|
const editDonation = (_b = donationHeader === null || donationHeader === void 0 ? void 0 : donationHeader.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('donation-form-edit-donation');
|
|
@@ -60,8 +60,8 @@ describe('Donation Form', () => {
|
|
|
60
60
|
amount: 3.5,
|
|
61
61
|
coverFees: false,
|
|
62
62
|
});
|
|
63
|
-
const el = (yield fixture(html `
|
|
64
|
-
<donation-form .donationInfo=${donationInfo}></donation-form>
|
|
63
|
+
const el = (yield fixture(html `
|
|
64
|
+
<donation-form .donationInfo=${donationInfo}></donation-form>
|
|
65
65
|
`));
|
|
66
66
|
const flowHandlers = new MockPaymentFlowHandlers();
|
|
67
67
|
el.paymentFlowHandlers = flowHandlers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"donation-form.test.js","sourceRoot":"","sources":["../../../test/tests/donation-form.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';\n\nimport '../../src/donation-form';\nimport { DonationForm } from '../../src/donation-form';\nimport {\n DonationType,\n DonationPaymentInfo,\n PaymentProvider,\n} from '@internetarchive/donation-form-data-models';\nimport { PaymentSelector } from '../../src/form-elements/payment-selector';\nimport { MockBraintreeManager } from '../mocks/mock-braintree-manager';\nimport { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';\nimport { promisedSleep } from '../../src/util/promisedSleep';\nimport { MockDonationInfo } from '../mocks/mock-donation-info';\n\ndescribe('Donation Form', () => {\n describe('Configuration', () => {\n it('has no configuration', async () => {\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\n\n expect(el.braintreeManager).to.equal(undefined);\n expect(el.donationRequest).to.equal(undefined);\n });\n\n it('updates donationInfo when user changes donation info', async () => {\n const el = (await fixture(html`\n <donation-form .donationInfo=${new MockDonationInfo()}></donation-form>\n `)) as DonationForm;\n const donationHeader = el.shadowRoot?.querySelector('donation-form-header');\n const editDonation = donationHeader?.shadowRoot?.querySelector('donation-form-edit-donation');\n const monthlyOption = editDonation?.shadowRoot?.querySelector('#donationType-monthly-option');\n const clickEvent = new MouseEvent('click');\n monthlyOption?.dispatchEvent(clickEvent);\n await elementUpdated(el);\n expect(el.donationInfo?.donationType).to.equal(DonationType.Monthly);\n });\n });\n\n it('shows the contact form when Credit Card is selected', async () => {\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\n '.credit-card-button',\n ) as HTMLButtonElement;\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\n const clickEvent = new MouseEvent('click');\n creditCardButton.dispatchEvent(clickEvent);\n await elementUpdated(el);\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\n });\n\n it('shows the contact form when Venmo is selected', async () => {\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\n const braintreeManager = new MockBraintreeManager();\n el.braintreeManager = braintreeManager;\n await elementUpdated(el);\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\n const clickEvent = new MouseEvent('click');\n venmoButton.dispatchEvent(clickEvent);\n await elementUpdated(el);\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\n });\n\n it('properly configures the flow handlers when they are set', async () => {\n const donationInfo = new DonationPaymentInfo({\n donationType: DonationType.Monthly,\n amount: 3.5,\n coverFees: false,\n });\n const el = (await fixture(html`\n <donation-form .donationInfo=${donationInfo}></donation-form>\n `)) as DonationForm;\n const flowHandlers = new MockPaymentFlowHandlers();\n el.paymentFlowHandlers = flowHandlers;\n await elementUpdated(el);\n await promisedSleep(250);\n expect(flowHandlers.paypalHandler.donationInfo).to.equal(donationInfo);\n });\n\n it('emits paymentProviderSelected when the selected provider changes', async () => {\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\n const braintreeManager = new MockBraintreeManager();\n el.braintreeManager = braintreeManager;\n await elementUpdated(el);\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\n '.credit-card-button',\n ) as HTMLButtonElement;\n\n // on the first payment provider chosen, the previousPaymentProvider is undefined\n setTimeout(() => {\n const ccClickEvent = new MouseEvent('click');\n creditCardButton.dispatchEvent(ccClickEvent);\n });\n const ccResponse = await oneEvent(el, 'paymentProviderSelected');\n expect(ccResponse).to.exist;\n expect(ccResponse.detail.paymentProvider).to.equal(PaymentProvider.CreditCard);\n expect(ccResponse.detail.previousPaymentProvider).to.equal(undefined);\n\n // on subsequent payment provider choices, the previousPaymentProvider is populated\n setTimeout(() => {\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\n const venmoClickEvent = new MouseEvent('click');\n venmoButton.dispatchEvent(venmoClickEvent);\n });\n const venmoResponse = await oneEvent(el, 'paymentProviderSelected');\n expect(venmoResponse).to.exist;\n expect(venmoResponse.detail.paymentProvider).to.equal(PaymentProvider.Venmo);\n expect(venmoResponse.detail.previousPaymentProvider).to.equal(PaymentProvider.CreditCard);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"donation-form.test.js","sourceRoot":"","sources":["../../../test/tests/donation-form.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';\r\n\r\nimport '../../src/donation-form';\r\nimport { DonationForm } from '../../src/donation-form';\r\nimport {\r\n DonationType,\r\n DonationPaymentInfo,\r\n PaymentProvider,\r\n} from '@internetarchive/donation-form-data-models';\r\nimport { PaymentSelector } from '../../src/form-elements/payment-selector';\r\nimport { MockBraintreeManager } from '../mocks/mock-braintree-manager';\r\nimport { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';\r\nimport { promisedSleep } from '../../src/util/promisedSleep';\r\nimport { MockDonationInfo } from '../mocks/mock-donation-info';\r\n\r\ndescribe('Donation Form', () => {\r\n describe('Configuration', () => {\r\n it('has no configuration', async () => {\r\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\r\n\r\n expect(el.braintreeManager).to.equal(undefined);\r\n expect(el.donationRequest).to.equal(undefined);\r\n });\r\n\r\n it('updates donationInfo when user changes donation info', async () => {\r\n const el = (await fixture(html`\r\n <donation-form .donationInfo=${new MockDonationInfo()}></donation-form>\r\n `)) as DonationForm;\r\n const donationHeader = el.shadowRoot?.querySelector('donation-form-header');\r\n const editDonation = donationHeader?.shadowRoot?.querySelector('donation-form-edit-donation');\r\n const monthlyOption = editDonation?.shadowRoot?.querySelector('#donationType-monthly-option');\r\n const clickEvent = new MouseEvent('click');\r\n monthlyOption?.dispatchEvent(clickEvent);\r\n await elementUpdated(el);\r\n expect(el.donationInfo?.donationType).to.equal(DonationType.Monthly);\r\n });\r\n });\r\n\r\n it('shows the contact form when Credit Card is selected', async () => {\r\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\r\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\r\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\r\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\r\n '.credit-card-button',\r\n ) as HTMLButtonElement;\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\r\n const clickEvent = new MouseEvent('click');\r\n creditCardButton.dispatchEvent(clickEvent);\r\n await elementUpdated(el);\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\r\n });\r\n\r\n it('shows the contact form when Venmo is selected', async () => {\r\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\r\n const braintreeManager = new MockBraintreeManager();\r\n el.braintreeManager = braintreeManager;\r\n await elementUpdated(el);\r\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\r\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\r\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\r\n const clickEvent = new MouseEvent('click');\r\n venmoButton.dispatchEvent(clickEvent);\r\n await elementUpdated(el);\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\r\n });\r\n\r\n it('properly configures the flow handlers when they are set', async () => {\r\n const donationInfo = new DonationPaymentInfo({\r\n donationType: DonationType.Monthly,\r\n amount: 3.5,\r\n coverFees: false,\r\n });\r\n const el = (await fixture(html`\r\n <donation-form .donationInfo=${donationInfo}></donation-form>\r\n `)) as DonationForm;\r\n const flowHandlers = new MockPaymentFlowHandlers();\r\n el.paymentFlowHandlers = flowHandlers;\r\n await elementUpdated(el);\r\n await promisedSleep(250);\r\n expect(flowHandlers.paypalHandler.donationInfo).to.equal(donationInfo);\r\n });\r\n\r\n it('emits paymentProviderSelected when the selected provider changes', async () => {\r\n const el = (await fixture(html` <donation-form></donation-form> `)) as DonationForm;\r\n const braintreeManager = new MockBraintreeManager();\r\n el.braintreeManager = braintreeManager;\r\n await elementUpdated(el);\r\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\r\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\r\n '.credit-card-button',\r\n ) as HTMLButtonElement;\r\n\r\n // on the first payment provider chosen, the previousPaymentProvider is undefined\r\n setTimeout(() => {\r\n const ccClickEvent = new MouseEvent('click');\r\n creditCardButton.dispatchEvent(ccClickEvent);\r\n });\r\n const ccResponse = await oneEvent(el, 'paymentProviderSelected');\r\n expect(ccResponse).to.exist;\r\n expect(ccResponse.detail.paymentProvider).to.equal(PaymentProvider.CreditCard);\r\n expect(ccResponse.detail.previousPaymentProvider).to.equal(undefined);\r\n\r\n // on subsequent payment provider choices, the previousPaymentProvider is populated\r\n setTimeout(() => {\r\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\r\n const venmoClickEvent = new MouseEvent('click');\r\n venmoButton.dispatchEvent(venmoClickEvent);\r\n });\r\n const venmoResponse = await oneEvent(el, 'paymentProviderSelected');\r\n expect(venmoResponse).to.exist;\r\n expect(venmoResponse.detail.paymentProvider).to.equal(PaymentProvider.Venmo);\r\n expect(venmoResponse.detail.previousPaymentProvider).to.equal(PaymentProvider.CreditCard);\r\n });\r\n});\r\n"]}
|
|
@@ -20,8 +20,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
20
20
|
sinon.restore();
|
|
21
21
|
});
|
|
22
22
|
it('can close the modal', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
-
const mockModalManager = (yield fixture(html `
|
|
24
|
-
<mock-modal-manager></mock-modal-manager>
|
|
23
|
+
const mockModalManager = (yield fixture(html `
|
|
24
|
+
<mock-modal-manager></mock-modal-manager>
|
|
25
25
|
`));
|
|
26
26
|
const mockBraintreeManager = new MockBraintreeManager();
|
|
27
27
|
const manager = new DonationFlowModalManager({
|
|
@@ -51,8 +51,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
51
51
|
}));
|
|
52
52
|
it('can show the processing modal', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
53
|
var _a;
|
|
54
|
-
const mockModalManager = (yield fixture(html `
|
|
55
|
-
<mock-modal-manager></mock-modal-manager>
|
|
54
|
+
const mockModalManager = (yield fixture(html `
|
|
55
|
+
<mock-modal-manager></mock-modal-manager>
|
|
56
56
|
`));
|
|
57
57
|
const mockBraintreeManager = new MockBraintreeManager();
|
|
58
58
|
const manager = new DonationFlowModalManager({
|
|
@@ -71,8 +71,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
71
71
|
}));
|
|
72
72
|
it('can show the error modal', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
73
|
var _a, _b;
|
|
74
|
-
const mockModalManager = (yield fixture(html `
|
|
75
|
-
<mock-modal-manager></mock-modal-manager>
|
|
74
|
+
const mockModalManager = (yield fixture(html `
|
|
75
|
+
<mock-modal-manager></mock-modal-manager>
|
|
76
76
|
`));
|
|
77
77
|
const mockBraintreeManager = new MockBraintreeManager();
|
|
78
78
|
const manager = new DonationFlowModalManager({
|
|
@@ -91,8 +91,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
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
93
|
var _a, _b;
|
|
94
|
-
const mockModalManager = (yield fixture(html `
|
|
95
|
-
<mock-modal-manager></mock-modal-manager>
|
|
94
|
+
const mockModalManager = (yield fixture(html `
|
|
95
|
+
<mock-modal-manager></mock-modal-manager>
|
|
96
96
|
`));
|
|
97
97
|
const mockBraintreeManager = new MockBraintreeManager();
|
|
98
98
|
const logEvent = sinon.fake();
|
|
@@ -119,8 +119,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
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* () {
|
|
122
|
-
const mockModalManager = (yield fixture(html `
|
|
123
|
-
<mock-modal-manager></mock-modal-manager>
|
|
122
|
+
const mockModalManager = (yield fixture(html `
|
|
123
|
+
<mock-modal-manager></mock-modal-manager>
|
|
124
124
|
`));
|
|
125
125
|
const mockBraintreeManager = new MockBraintreeManager();
|
|
126
126
|
const logEvent = sinon.fake();
|
|
@@ -145,8 +145,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
145
145
|
}));
|
|
146
146
|
it('can show the confirmation modal', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
147
147
|
var _a, _b;
|
|
148
|
-
const mockModalManager = (yield fixture(html `
|
|
149
|
-
<mock-modal-manager></mock-modal-manager>
|
|
148
|
+
const mockModalManager = (yield fixture(html `
|
|
149
|
+
<mock-modal-manager></mock-modal-manager>
|
|
150
150
|
`));
|
|
151
151
|
const mockBraintreeManager = new MockBraintreeManager();
|
|
152
152
|
const manager = new DonationFlowModalManager({
|
|
@@ -168,8 +168,8 @@ describe('Donation Flow Modal Manager', () => {
|
|
|
168
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
|
-
const mockModalManager = (yield fixture(html `
|
|
172
|
-
<mock-modal-manager></mock-modal-manager>
|
|
171
|
+
const mockModalManager = (yield fixture(html `
|
|
172
|
+
<mock-modal-manager></mock-modal-manager>
|
|
173
173
|
`));
|
|
174
174
|
const mockBraintreeManager = new MockBraintreeManager();
|
|
175
175
|
const manager = new DonationFlowModalManager({
|