// This file is the default. To override, add to connector.js import State from "../../utils/State"; const globalState = new State({ connectorId: Cypress.env("CONNECTOR"), baseUrl: Cypress.env("BASEURL"), adminApiKey: Cypress.env("ADMINAPIKEY"), connectorAuthFilePath: Cypress.env("CONNECTOR_AUTH_FILE_PATH"), }); const connectorName = normalise(globalState.get("connectorId")); function normalise(input) { const exceptions = { bankofamerica: "Bank of America", cybersource: "Cybersource", paypal: "Paypal", // Add more known exceptions here }; if (exceptions[input.toLowerCase()]) { return exceptions[input.toLowerCase()]; } else { return input; } } const successfulNo3DSCardDetails = { card_number: "4111111111111111", card_exp_month: "08", card_exp_year: "25", card_holder_name: "joseph Doe", card_cvc: "999", }; const successfulThreeDSTestCardDetails = { card_number: "4111111111111111", card_exp_month: "10", card_exp_year: "25", card_holder_name: "morino", card_cvc: "999", }; /* `getDefaultExchange` contains the default Request and Response to be considered if none provided. `getCustomExchange` takes in 2 optional fields named as Request and Response. with `getCustomExchange`, if 501 response is expected, there is no need to pass Response as it considers default values. */ // Const to get default PaymentExchange object const getDefaultExchange = () => ({ Request: { currency: "EUR", }, Response: { status: 501, body: { error: { type: "invalid_request", message: `Selected payment method through ${connectorName} is not implemented`, code: "IR_00", }, }, }, }); // Const to get PaymentExchange with overridden properties export const getCustomExchange = (overrides) => { const defaultExchange = getDefaultExchange(); return { ...defaultExchange, Request: { ...defaultExchange.Request, ...(overrides.Request || {}), }, Response: { ...defaultExchange.Response, ...(overrides.Response || {}), }, }; }; export const connectorDetails = { card_pm: { PaymentIntent: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", customer_acceptance: null, setup_future_usage: "on_session", }, Response: { status: 200, body: { status: "requires_payment_method", }, }, }), "3DSManualCapture": { Request: { card: successfulThreeDSTestCardDetails, currency: "USD", customer_acceptance: null, setup_future_usage: "on_session", }, Response: { status: 200, body: { status: "processing", }, }, }, "3DSAutoCapture": { Request: { card: successfulThreeDSTestCardDetails, currency: "USD", customer_acceptance: null, setup_future_usage: "on_session", }, Response: { status: 200, body: { status: "processing", }, }, }, No3DSManualCapture: { Request: { card: successfulNo3DSCardDetails, currency: "USD", customer_acceptance: null, setup_future_usage: "on_session", }, Response: { status: 200, body: { status: "processing", }, }, }, No3DSAutoCapture: { Request: { card: successfulNo3DSCardDetails, currency: "USD", customer_acceptance: null, setup_future_usage: "on_session", }, Response: { status: 200, body: { status: "processing", }, }, }, Capture: { Request: { card: successfulNo3DSCardDetails, currency: "USD", customer_acceptance: null, }, Response: { status: 200, body: { status: "processing", amount: 6500, amount_capturable: 6500, }, }, }, PartialCapture: { Request: {}, Response: { status: 200, body: { status: "processing", amount: 6500, amount_capturable: 6500, }, }, }, Void: { Request: {}, Response: { status: 400, body: { error: { code: "IR_16", message: "You cannot cancel this payment because it has status processing", type: "invalid_request", }, }, }, }, Refund: { Request: { card: successfulNo3DSCardDetails, currency: "USD", customer_acceptance: null, }, Response: { status: 400, body: { error: { type: "invalid_request", message: "This Payment could not be refund because it has a status of processing. The expected state is succeeded, partially_captured", code: "IR_14", }, }, }, }, PartialRefund: { Request: { card: successfulNo3DSCardDetails, currency: "USD", customer_acceptance: null, }, Response: { status: 400, body: { error: { type: "invalid_request", message: "This Payment could not be refund because it has a status of processing. The expected state is succeeded, partially_captured", code: "IR_14", }, }, }, }, SyncRefund: { Request: { card: successfulNo3DSCardDetails, currency: "USD", customer_acceptance: null, }, Response: { status: 400, body: { error: { type: "invalid_request", message: "This Payment could not be refund because it has a status of processing. The expected state is succeeded, partially_captured", code: "IR_14", }, }, }, }, MandateSingleUse3DSAutoCapture: getCustomExchange({ Request: { card: successfulThreeDSTestCardDetails, currency: "USD", mandate_type: { single_use: { amount: 8000, currency: "USD", }, }, }, }), MandateSingleUse3DSManualCapture: getCustomExchange({ Request: { card: successfulThreeDSTestCardDetails, currency: "USD", mandate_type: { single_use: { amount: 8000, currency: "USD", }, }, }, }), MandateSingleUseNo3DSAutoCapture: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", mandate_type: { single_use: { amount: 8000, currency: "USD", }, }, }, }), MandateSingleUseNo3DSManualCapture: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", mandate_type: { single_use: { amount: 8000, currency: "USD", }, }, }, }), MandateMultiUseNo3DSAutoCapture: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", mandate_type: { single_use: { amount: 8000, currency: "USD", }, }, }, }), MandateMultiUseNo3DSManualCapture: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", mandate_type: { multi_use: { amount: 8000, currency: "USD", }, }, }, }), MandateMultiUse3DSAutoCapture: getCustomExchange({ Request: { card: successfulThreeDSTestCardDetails, currency: "USD", mandate_type: { multi_use: { amount: 8000, currency: "USD", }, }, }, }), MandateMultiUse3DSManualCapture: getCustomExchange({ Request: { card: successfulThreeDSTestCardDetails, currency: "USD", mandate_type: { multi_use: { amount: 8000, currency: "USD", }, }, }, }), ZeroAuthMandate: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", mandate_type: { single_use: { amount: 8000, currency: "USD", }, }, }, }), SaveCardUseNo3DSAutoCapture: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", setup_future_usage: "on_session", customer_acceptance: { acceptance_type: "offline", accepted_at: "1963-05-03T04:07:52.723Z", online: { ip_address: "127.0.0.1", user_agent: "amet irure esse", }, }, }, }), SaveCardUseNo3DSManualCapture: getCustomExchange({ Request: { card: successfulNo3DSCardDetails, currency: "USD", setup_future_usage: "on_session", customer_acceptance: { acceptance_type: "offline", accepted_at: "1963-05-03T04:07:52.723Z", online: { ip_address: "127.0.0.1", user_agent: "amet irure esse", }, }, }, }), }, bank_transfer_pm: { PaymentIntent: getCustomExchange({ Request: { currency: "BRL", }, Response: { status: 200, body: { status: "requires_payment_method", }, }, }), Pix: getCustomExchange({ Request: { payment_method: "bank_transfer", payment_method_type: "pix", payment_method_data: { bank_transfer: { pix: {}, }, }, currency: "BRL", }, }), }, bank_redirect_pm: { PaymentIntent: getCustomExchange({ Request: { currency: "EUR", }, Response: { status: 200, body: { status: "requires_payment_method", }, }, }), ideal: getCustomExchange({ Request: { payment_method: "bank_redirect", payment_method_type: "ideal", payment_method_data: { bank_redirect: { ideal: { bank_name: "ing", country: "NL", }, }, }, }, }), giropay: getCustomExchange({ Request: { payment_method: "bank_redirect", payment_method_type: "giropay", payment_method_data: { bank_redirect: { giropay: { bank_name: "", bank_account_bic: "", bank_account_iban: "", preferred_language: "en", country: "DE", }, }, }, }, }), sofort: getCustomExchange({ Request: { payment_method: "bank_redirect", payment_method_type: "sofort", payment_method_data: { bank_redirect: { sofort: { country: "DE", preferred_language: "en", }, }, }, }, }), eps: getCustomExchange({ Request: { payment_method: "bank_redirect", payment_method_type: "eps", payment_method_data: { bank_redirect: { eps: { bank_name: "ing", }, }, }, }, }), blikPaymentIntent: getCustomExchange({ Request: { currency: "PLN", }, Response: { status: 200, body: { status: "requires_payment_method", }, }, }), blik: getCustomExchange({ Request: { payment_method: "bank_redirect", payment_method_type: "blik", payment_method_data: { bank_redirect: { blik: { blik_code: "777987", }, }, }, billing: { address: { line1: "1467", line2: "Harrison Street", line3: "Harrison Street", city: "San Fransico", state: "California", zip: "94122", country: "PL", first_name: "john", last_name: "doe", }, }, }, }), }, };