diff --git a/app/Console/Commands/CreateSingleAccount.php b/app/Console/Commands/CreateSingleAccount.php index 7054815fadac..ffd9e33e0b99 100644 --- a/app/Console/Commands/CreateSingleAccount.php +++ b/app/Console/Commands/CreateSingleAccount.php @@ -120,7 +120,7 @@ class CreateSingleAccount extends Command $company_token->company_id = $company->id; $company_token->account_id = $account->id; $company_token->name = 'test token'; - $company_token->token = Str::random(64); + $company_token->token = 'company-token-test'; $company_token->is_system = true; $company_token->save(); diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index 7fdedfed9197..d2af14ba385c 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -100,11 +100,6 @@ class StripePaymentDriver extends BaseDriver // GatewayType::APPLE_PAY, // TODO:: Missing implementation ]; - // $this->invitation = false - // $this->client doesn't exist - // $this->client->country is relationship? - // Missing Slovenia for Alipay - if ($this->company_gateway->getSofortEnabled() && $this->client && isset($this->client->country) diff --git a/cypress/integration/client_portal/stripe_ach.spec.js b/cypress/integration/client_portal/stripe_ach.spec.js deleted file mode 100644 index b4bfd02f39c8..000000000000 --- a/cypress/integration/client_portal/stripe_ach.spec.js +++ /dev/null @@ -1,68 +0,0 @@ -describe('Stripe: ACH testing', () => { - before(() => { - // cy.artisan('migrate:fresh --seed'); - // cy.artisan('ninja:create-single-account checkout'); - }); - - beforeEach(() => { - cy.viewport('macbook-13'); - cy.clientLogin(); - }); - - afterEach(() => { - cy.visit('/client/logout'); - }); - - it('should be able to add bank account & verify it', function () { - cy.visit('/client/payment_methods'); - - cy.get('[data-cy=add-payment-method]').click(); - cy.get('[data-cy=add-bank-account-link]').click(); - - cy.get('#account-holder-name').type('Invoice Ninja Rocks'); - cy.get('#country').select('US'); - cy.get('#currency').select('USD'); - cy.get('#routing-number').type('110000000'); - cy.get('#account-number').type('000123456789'); - cy.get('#accept-terms').check(); - - cy.get('#save-button').click(); - - cy.url().should('contain', 'method=2'); - - cy.get('[data-cy=verification-1st]').type('32'); - cy.get('[data-cy=verification-2nd]').type('45'); - - cy.get('#pay-now').click(); - - cy.get('body').contains('Verification completed successfully'); - }); - - it('should be able to pay the invoice', function () { - cy.visit('/client/invoices'); - - cy.get('[data-cy=pay-now]').first().click(); - cy.get('[data-cy=pay-now-dropdown]').click(); - cy.get('[data-cy=pay-with-1]').click(); - - cy.get('[name=payment-type]').first().check(); - - cy.get('#pay-now').click(); - - cy.url().should('contain', '/client/payments/'); - }); - - it('should be able to remove payment method', function () { - cy.visit('/client/payment_methods'); - - cy.get('[data-cy=view-payment-method]').click(); - - cy.get('#open-delete-popup').click(); - - cy.get('[data-cy=confirm-payment-removal]').click(); - - cy.url().should('contain', '/client/payment_methods'); - - cy.get('body').contains('Payment method has been successfully removed.'); - }); -}); diff --git a/cypress/integration/client_portal/stripe_alipay.spec.js b/cypress/integration/client_portal/stripe_alipay.spec.js deleted file mode 100644 index 73665167a36e..000000000000 --- a/cypress/integration/client_portal/stripe_alipay.spec.js +++ /dev/null @@ -1,29 +0,0 @@ -describe('Stripe: Alipay testing', () => { - before(() => { - // cy.artisan('migrate:fresh --seed'); - // cy.artisan('ninja:create-single-account checkout'); - }); - - beforeEach(() => { - cy.viewport('macbook-13'); - cy.clientLogin(); - }); - - afterEach(() => { - cy.visit('/client/logout'); - }); - - it('should be able to pay using Alipay', function () { - cy.visit('/client/invoices'); - - cy.get('[data-cy=pay-now]').first().click(); - cy.get('[data-cy=pay-now-dropdown]').click(); - cy.get('[data-cy=pay-with-1]').click(); - - cy.get('#pay-now').click(); - - cy.get('.common-ButtonGroup > .common-Button--default').click(); - - cy.url().should('contain', '/client/payments/'); - }); -}); diff --git a/cypress/integration/client_portal/stripe_sofort.spec.js b/cypress/integration/client_portal/stripe_sofort.spec.js deleted file mode 100644 index 3a04ac8fc8a8..000000000000 --- a/cypress/integration/client_portal/stripe_sofort.spec.js +++ /dev/null @@ -1,29 +0,0 @@ -describe('Stripe: SOFORT testing', () => { - before(() => { - // cy.artisan('migrate:fresh --seed'); - // cy.artisan('ninja:create-single-account checkout'); - }); - - beforeEach(() => { - cy.viewport('macbook-13'); - cy.clientLogin(); - }); - - afterEach(() => { - cy.visit('/client/logout'); - }); - - it('should be able to pay using SOFORT', function () { - cy.visit('/client/invoices'); - - cy.get('[data-cy=pay-now]').first().click(); - cy.get('[data-cy=pay-now-dropdown]').click(); - cy.get('[data-cy=pay-with-2]').click(); - - cy.get('#pay-now').click(); - - cy.get('.common-ButtonGroup > .common-Button--default').click(); - - cy.url().should('contain', '/client/payments/'); - }); -}); diff --git a/cypress/integration/client_portal/authorize.net_credit_card.spec.js b/cypress/integration/gateways/authorize.net_credit_card.spec.js similarity index 95% rename from cypress/integration/client_portal/authorize.net_credit_card.spec.js rename to cypress/integration/gateways/authorize.net_credit_card.spec.js index 4d830920cefb..b7d642656f42 100644 --- a/cypress/integration/client_portal/authorize.net_credit_card.spec.js +++ b/cypress/integration/gateways/authorize.net_credit_card.spec.js @@ -8,7 +8,7 @@ * @license https://opensource.org/licenses/AAL */ -describe.skip('Authorize.net: Credit card test', () => { +describe('Authorize.net: Credit card test', () => { before(() => { cy.artisan('migrate:fresh --seed'); cy.artisan('ninja:create-single-account authorizenet'); @@ -101,6 +101,6 @@ describe.skip('Authorize.net: Credit card test', () => { cy.get('#card_button').click(); - cy.location('pathname', {timeout: 60000}.should('include', '/client/payment_methods')); + cy.location('pathname', {timeout: 60000}).should('include', '/client/payment_methods'); }); }); diff --git a/cypress/integration/client_portal/checkout_credit_card.spec.js b/cypress/integration/gateways/checkout_credit_card.spec.js similarity index 100% rename from cypress/integration/client_portal/checkout_credit_card.spec.js rename to cypress/integration/gateways/checkout_credit_card.spec.js diff --git a/cypress/integration/gateways/stripe_ach.spec.js b/cypress/integration/gateways/stripe_ach.spec.js new file mode 100644 index 000000000000..dc50e0450ffa --- /dev/null +++ b/cypress/integration/gateways/stripe_ach.spec.js @@ -0,0 +1,248 @@ +import axios from 'axios'; + +describe('Stripe: ACH testing', () => { + before(() => { + cy.artisan('migrate:fresh --seed'); + cy.artisan('ninja:create-single-account stripe'); + }); + + beforeEach(() => { + let headers = { + 'X-API-Token': 'company-token-test', + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json; charset=utf-8', + }; + + let gatewaysBody = { + "gateway_key": "d14dd26a37cecc30fdd65700bfb55b23", + "accepted_credit_cards": 0, + "require_shipping_address": true, + "require_billing_address": true, + "require_client_name": false, + "require_client_phone": false, + "require_contact_name": false, + "require_contact_email": false, + "require_cvv": true, + "update_details": true, + "fees_and_limits": { + "1": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + }, + "2": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + }, + "6": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + } + }, + "system_logs": [], + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "config": "{\"apiKey\":\"sk_test_Yorqvz45sZWSSUmvCfoKF8e6\",\"publishableKey\":\"pk_test_P1riKDKD0pdNTkHwBWEZ8DR0\",\"enable_ach\":\"1\",\"enable_sofort\":\"1\",\"enable_apple_pay\":\"0\",\"enable_alipay\":\"0\"}", + "token_billing": "off", + "test_mode": true, + "label": "Stripe", + "created_at": 1612791181, + "updated_at": 1612792176, + "archived_at": 0, + "id": "VolejRejNm", + "loadedAt": 1612792176934, + "require_postal_code": false, + "is_deleted": false + }; + let clientBody = { + "group_settings_id": "", + "name": "Batz LLC", + "display_name": "Batz LLC", + "balance": 8323.7, + "credit_balance": 0, + "paid_to_date": 0, + "client_hash": "DxrMypcMdnYJvfebfeoXUi2Iyear6LkNq7Twi0H9", + "address1": "45804", + "address2": "47988 Rex Mall", + "city": "New Macberg", + "state": "Florida", + "postal_code": "43089-5809", + "country_id": "840", + "phone": "", + "private_notes": "Neque libero eos adipisci quae. Non voluptas quaerat ea nisi repudiandae in. Voluptatem error aut est distinctio perspiciatis quis.", + "public_notes": "", + "website": "https://www.wintheiser.com/non-velit-nisi-culpa-sit-optio-omnis-ipsum-pariatur", + "industry_id": "", + "size_id": "", + "vat_number": "157764830", + "id_number": "", + "number": "0001", + "shipping_address1": "5181", + "shipping_address2": "66797 Jedediah Isle Suite 479", + "shipping_city": "Lake Rosariomouth", + "shipping_state": "Nevada", + "shipping_postal_code": "31693", + "shipping_country_id": "4", + "settings": { + "currency_id": "1" + }, + "last_login": 0, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "contacts": [ + { + "first_name": "Rita", + "last_name": "Pouros", + "email": "user@example.com", + "password": "**********", + "phone": "+1-331-663-8498", + "contact_key": "hNQkBU6RM6tG2pwu4J7dCfuq2ZdH6Q8anEvKnyoL", + "is_primary": true, + "send_email": true, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "last_login": 0, + "link": "https://localhost:8080/client/key_login/hNQkBU6RM6tG2pwu4J7dCfuq2ZdH6Q8anEvKnyoL", + "created_at": 1612792539, + "updated_at": 1612792539, + "archived_at": 0, + "id": "VolejRejNm" + }, + { + "first_name": "Danika", + "last_name": "Hauck", + "email": "bbrakus@example.net", + "password": "**********", + "phone": "662-968-5275 x48146", + "contact_key": "4hWqvVUv2bwYIOb25rWmQhbhadnl5yneTzglGZ32", + "is_primary": false, + "send_email": true, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "last_login": 0, + "link": "https://localhost:8080/client/key_login/4hWqvVUv2bwYIOb25rWmQhbhadnl5yneTzglGZ32", + "created_at": 1612792539, + "updated_at": 1612792539, + "archived_at": 0, + "id": "Wpmbk5ezJn" + } + ], + "activities": [], + "ledger": [], + "gateway_tokens": [], + "documents": [], + "system_logs": [], + "created_at": 1612792539, + "updated_at": 1612792565, + "archived_at": 0, + "id": "VolejRejNm", + "isChanged": true, + "is_deleted": false, + "user_id": "VolejRejNm", + "assigned_user_id": "" + }; + + axios.put('https://localhost:8080/api/v1/company_gateways/VolejRejNm', gatewaysBody, {headers}) + axios.put('https://localhost:8080/api/v1/clients/VolejRejNm', clientBody, {headers}); // Set country to US. + + cy.viewport('macbook-13'); + cy.clientLogin(); + }); + + afterEach(() => { + cy.visit('/client/logout').visit('/client/login'); + }); + + it('should be able to add bank account & verify it', function () { + cy.visit('/client/payment_methods'); + + cy.get('[data-cy=add-payment-method]').click(); + cy.get('[data-cy=add-bank-account-link]').click(); + + cy.get('#account-holder-name').type('Invoice Ninja Rocks'); + cy.get('#country').select('US'); + cy.get('#currency').select('USD'); + cy.get('#routing-number').type('110000000'); + cy.get('#account-number').type('000123456789'); + cy.get('#accept-terms').check(); + + cy.get('#save-button').click(); + + cy.url().should('contain', 'method=2'); + + cy.get('[data-cy=verification-1st]').type('32'); + cy.get('[data-cy=verification-2nd]').type('45'); + + cy.get('#pay-now').click(); + + cy.get('body').contains('Verification completed successfully'); + }); + + it('should be able to pay the invoice', function () { + cy.visit('/client/invoices'); + + cy.get('[data-cy=pay-now]').first().click(); + cy.get('[data-cy=pay-now-dropdown]').click(); + cy.get('[data-cy=pay-with-2]').click(); + + cy.get('[name=payment-type]').first().check(); + + cy.get('#pay-now').click(); + + cy.url().should('contain', '/client/payments/'); + }); + + it('should be able to remove payment method', function () { + cy.visit('/client/payment_methods'); + + cy.get('[data-cy=view-payment-method]').click(); + + cy.get('#open-delete-popup').click(); + + cy.get('[data-cy=confirm-payment-removal]').click(); + + cy.url().should('contain', '/client/payment_methods'); + + cy.get('body').contains('Payment method has been successfully removed.'); + }); +}); diff --git a/cypress/integration/gateways/stripe_alipay.spec.js b/cypress/integration/gateways/stripe_alipay.spec.js new file mode 100644 index 000000000000..16e0d2653ec4 --- /dev/null +++ b/cypress/integration/gateways/stripe_alipay.spec.js @@ -0,0 +1,209 @@ +import axios from "axios"; + +describe('Stripe: Alipay testing', () => { + before(() => { + cy.artisan('migrate:fresh --seed'); + cy.artisan('ninja:create-single-account checkout'); + }); + + beforeEach(() => { + let headers = { + 'X-API-Token': 'company-token-test', + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json; charset=utf-8', + }; + + let gatewaysBody = { + "gateway_key": "d14dd26a37cecc30fdd65700bfb55b23", + "accepted_credit_cards": 0, + "require_shipping_address": true, + "require_billing_address": true, + "require_client_name": false, + "require_client_phone": false, + "require_contact_name": false, + "require_contact_email": false, + "require_cvv": true, + "update_details": true, + "fees_and_limits": { + "1": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + }, + "2": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + }, + "6": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + } + }, + "system_logs": [], + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "config": "{\"apiKey\":\"sk_test_Yorqvz45sZWSSUmvCfoKF8e6\",\"publishableKey\":\"pk_test_P1riKDKD0pdNTkHwBWEZ8DR0\",\"enable_ach\":\"0\",\"enable_sofort\":\"0\",\"enable_apple_pay\":\"0\",\"enable_alipay\":\"1\"}", + "token_billing": "off", + "test_mode": true, + "label": "Stripe", + "created_at": 1612791181, + "updated_at": 1612792176, + "archived_at": 0, + "id": "VolejRejNm", + "loadedAt": 1612792176934, + "require_postal_code": false, + "is_deleted": false + }; + let clientBody = { + "group_settings_id": "", + "name": "Batz LLC", + "display_name": "Batz LLC", + "balance": 8323.7, + "credit_balance": 0, + "paid_to_date": 0, + "client_hash": "DxrMypcMdnYJvfebfeoXUi2Iyear6LkNq7Twi0H9", + "address1": "45804", + "address2": "47988 Rex Mall", + "city": "New Macberg", + "state": "Florida", + "postal_code": "43089-5809", + "country_id": "840", + "phone": "", + "private_notes": "Neque libero eos adipisci quae. Non voluptas quaerat ea nisi repudiandae in. Voluptatem error aut est distinctio perspiciatis quis.", + "public_notes": "", + "website": "https://www.wintheiser.com/non-velit-nisi-culpa-sit-optio-omnis-ipsum-pariatur", + "industry_id": "", + "size_id": "", + "vat_number": "157764830", + "id_number": "", + "number": "0001", + "shipping_address1": "5181", + "shipping_address2": "66797 Jedediah Isle Suite 479", + "shipping_city": "Lake Rosariomouth", + "shipping_state": "Nevada", + "shipping_postal_code": "31693", + "shipping_country_id": "4", + "settings": { + "currency_id": "1" + }, + "last_login": 0, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "contacts": [ + { + "first_name": "Rita", + "last_name": "Pouros", + "email": "user@example.com", + "password": "**********", + "phone": "+1-331-663-8498", + "contact_key": "hNQkBU6RM6tG2pwu4J7dCfuq2ZdH6Q8anEvKnyoL", + "is_primary": true, + "send_email": true, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "last_login": 0, + "link": "https://localhost:8080/client/key_login/hNQkBU6RM6tG2pwu4J7dCfuq2ZdH6Q8anEvKnyoL", + "created_at": 1612792539, + "updated_at": 1612792539, + "archived_at": 0, + "id": "VolejRejNm" + }, + { + "first_name": "Danika", + "last_name": "Hauck", + "email": "bbrakus@example.net", + "password": "**********", + "phone": "662-968-5275 x48146", + "contact_key": "4hWqvVUv2bwYIOb25rWmQhbhadnl5yneTzglGZ32", + "is_primary": false, + "send_email": true, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "last_login": 0, + "link": "https://localhost:8080/client/key_login/4hWqvVUv2bwYIOb25rWmQhbhadnl5yneTzglGZ32", + "created_at": 1612792539, + "updated_at": 1612792539, + "archived_at": 0, + "id": "Wpmbk5ezJn" + } + ], + "activities": [], + "ledger": [], + "gateway_tokens": [], + "documents": [], + "system_logs": [], + "created_at": 1612792539, + "updated_at": 1612792565, + "archived_at": 0, + "id": "VolejRejNm", + "isChanged": true, + "is_deleted": false, + "user_id": "VolejRejNm", + "assigned_user_id": "" + }; + + axios.put('https://localhost:8080/api/v1/company_gateways/VolejRejNm', gatewaysBody, {headers}) + axios.put('https://localhost:8080/api/v1/clients/VolejRejNm', clientBody, {headers}); // Set country to US. + + cy.viewport('macbook-13'); + cy.clientLogin(); + }); + + afterEach(() => { + cy.visit('/client/logout').visit('/client/login'); + }); + + it('should be able to pay using Alipay', function () { + cy.visit('/client/invoices'); + + cy.get('[data-cy=pay-now]').first().click(); + cy.get('[data-cy=pay-now-dropdown]').click(); + cy.get('[data-cy=pay-with-2]').click(); + + cy.get('#pay-now').click(); + + cy.get('.common-ButtonGroup > .common-Button--default').click(); + + cy.url().should('contain', '/client/payments/'); + }); +}); diff --git a/cypress/integration/client_portal/stripe_credit_card.spec.js b/cypress/integration/gateways/stripe_credit_card.spec.js similarity index 100% rename from cypress/integration/client_portal/stripe_credit_card.spec.js rename to cypress/integration/gateways/stripe_credit_card.spec.js diff --git a/cypress/integration/gateways/stripe_sofort.spec.js b/cypress/integration/gateways/stripe_sofort.spec.js new file mode 100644 index 000000000000..38073166b97f --- /dev/null +++ b/cypress/integration/gateways/stripe_sofort.spec.js @@ -0,0 +1,209 @@ +import axios from "axios"; + +describe('Stripe: SOFORT testing', () => { + before(() => { + cy.artisan('migrate:fresh --seed'); + cy.artisan('ninja:create-single-account checkout'); + }); + + beforeEach(() => { + let headers = { + 'X-API-Token': 'company-token-test', + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json; charset=utf-8', + }; + + let gatewaysBody = { + "gateway_key": "d14dd26a37cecc30fdd65700bfb55b23", + "accepted_credit_cards": 0, + "require_shipping_address": true, + "require_billing_address": true, + "require_client_name": false, + "require_client_phone": false, + "require_contact_name": false, + "require_contact_email": false, + "require_cvv": true, + "update_details": true, + "fees_and_limits": { + "1": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + }, + "2": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + }, + "6": { + "min_limit": -1, + "max_limit": -1, + "fee_amount": 0, + "fee_percent": 0, + "fee_cap": 0, + "fee_tax_rate1": 0, + "fee_tax_name1": "", + "fee_tax_rate2": 0, + "fee_tax_name2": "", + "fee_tax_rate3": 0, + "fee_tax_name3": "", + "adjust_fee_percent": false, + "is_enabled": true + } + }, + "system_logs": [], + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "config": "{\"apiKey\":\"sk_test_Yorqvz45sZWSSUmvCfoKF8e6\",\"publishableKey\":\"pk_test_P1riKDKD0pdNTkHwBWEZ8DR0\",\"enable_ach\":\"1\",\"enable_sofort\":\"1\",\"enable_apple_pay\":\"0\",\"enable_alipay\":\"0\"}", + "token_billing": "off", + "test_mode": true, + "label": "Stripe", + "created_at": 1612791181, + "updated_at": 1612792176, + "archived_at": 0, + "id": "VolejRejNm", + "loadedAt": 1612792176934, + "require_postal_code": false, + "is_deleted": false + }; + let clientBody = { + "group_settings_id": "", + "name": "Batz LLC", + "display_name": "Batz LLC", + "balance": 8323.7, + "credit_balance": 0, + "paid_to_date": 0, + "client_hash": "DxrMypcMdnYJvfebfeoXUi2Iyear6LkNq7Twi0H9", + "address1": "45804", + "address2": "47988 Rex Mall", + "city": "New Macberg", + "state": "Florida", + "postal_code": "43089-5809", + "country_id": "276", + "phone": "", + "private_notes": "Neque libero eos adipisci quae. Non voluptas quaerat ea nisi repudiandae in. Voluptatem error aut est distinctio perspiciatis quis.", + "public_notes": "", + "website": "https://www.wintheiser.com/non-velit-nisi-culpa-sit-optio-omnis-ipsum-pariatur", + "industry_id": "", + "size_id": "", + "vat_number": "157764830", + "id_number": "", + "number": "0001", + "shipping_address1": "5181", + "shipping_address2": "66797 Jedediah Isle Suite 479", + "shipping_city": "Lake Rosariomouth", + "shipping_state": "Nevada", + "shipping_postal_code": "31693", + "shipping_country_id": "4", + "settings": { + "currency_id": "1" + }, + "last_login": 0, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "contacts": [ + { + "first_name": "Rita", + "last_name": "Pouros", + "email": "user@example.com", + "password": "**********", + "phone": "+1-331-663-8498", + "contact_key": "hNQkBU6RM6tG2pwu4J7dCfuq2ZdH6Q8anEvKnyoL", + "is_primary": true, + "send_email": true, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "last_login": 0, + "link": "https://localhost:8080/client/key_login/hNQkBU6RM6tG2pwu4J7dCfuq2ZdH6Q8anEvKnyoL", + "created_at": 1612792539, + "updated_at": 1612792539, + "archived_at": 0, + "id": "VolejRejNm" + }, + { + "first_name": "Danika", + "last_name": "Hauck", + "email": "bbrakus@example.net", + "password": "**********", + "phone": "662-968-5275 x48146", + "contact_key": "4hWqvVUv2bwYIOb25rWmQhbhadnl5yneTzglGZ32", + "is_primary": false, + "send_email": true, + "custom_value1": "", + "custom_value2": "", + "custom_value3": "", + "custom_value4": "", + "last_login": 0, + "link": "https://localhost:8080/client/key_login/4hWqvVUv2bwYIOb25rWmQhbhadnl5yneTzglGZ32", + "created_at": 1612792539, + "updated_at": 1612792539, + "archived_at": 0, + "id": "Wpmbk5ezJn" + } + ], + "activities": [], + "ledger": [], + "gateway_tokens": [], + "documents": [], + "system_logs": [], + "created_at": 1612792539, + "updated_at": 1612792565, + "archived_at": 0, + "id": "VolejRejNm", + "isChanged": true, + "is_deleted": false, + "user_id": "VolejRejNm", + "assigned_user_id": "" + }; + + axios.put('https://localhost:8080/api/v1/company_gateways/VolejRejNm', gatewaysBody, {headers}) + axios.put('https://localhost:8080/api/v1/clients/VolejRejNm', clientBody, {headers}); // Set country to US. + + cy.viewport('macbook-13'); + cy.clientLogin(); + }); + + afterEach(() => { + cy.visit('/client/logout').visit('/client/login'); + }); + + it('should be able to pay using SOFORT', function () { + cy.visit('/client/invoices'); + + cy.get('[data-cy=pay-now]').first().click(); + cy.get('[data-cy=pay-now-dropdown]').click(); + cy.get('[data-cy=pay-with-2]').click(); + + cy.get('#pay-now').click(); + + cy.get('.common-ButtonGroup > .common-Button--default').click(); + + cy.url().should('contain', '/client/payments/'); + }); +}); diff --git a/cypress/support/commands.js b/cypress/support/commands.js index ac6688e842cc..909d7beb0984 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -27,10 +27,24 @@ const axios = require('axios'); const fixture = require('../fixtures/example.json'); Cypress.Commands.add('clientLogin', () => { - cy.visit('/client/login') - .get('#email').type('user@example.com') - .get('#password').type('password') - .get('#loginBtn').click(); + cy.visit('/client/login'); + cy.get('#test_email') + .invoke('val') + .then((emailValue) => { + cy.get('#test_password') + .invoke('val') + .then((passwordValue) => { + cy.get('#email') + .type(emailValue) + .should('have.value', emailValue); + cy.get('#password') + .type(passwordValue) + .should('have.value', passwordValue); + cy.get('#loginBtn') + .contains('Login') + .click(); + }); + }); }); Cypress.Commands.add('iframeLoaded', {prevSubject: 'element'}, ($iframe) => {