mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 05:02:36 +01:00
wip
This commit is contained in:
parent
66c81d9b51
commit
91e9321049
@ -1,6 +1,6 @@
|
||||
{
|
||||
"video": false,
|
||||
"baseUrl": "http://localhost:8080/",
|
||||
"baseUrl": "https://localhost:8080/",
|
||||
"chromeWebSecurity": false,
|
||||
"env": {
|
||||
"runningEnvironment": "docker"
|
||||
|
106
cypress/integration/client_portal/authorize.net_credit_card.spec.js
vendored
Normal file
106
cypress/integration/client_portal/authorize.net_credit_card.spec.js
vendored
Normal file
@ -0,0 +1,106 @@
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
describe.skip('Authorize.net: Credit card test', () => {
|
||||
before(() => {
|
||||
cy.artisan('migrate:fresh --seed');
|
||||
cy.artisan('ninja:create-single-account authorizenet');
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.viewport('macbook-13');
|
||||
cy.wait(5000);
|
||||
cy.clientLogin();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cy.visit('/client/logout').visit('/client/login');
|
||||
});
|
||||
|
||||
it('should pay with new card', function () {
|
||||
cy.visit('/client/invoices').then((contentWindow) => {
|
||||
cy.get('[data-cy=pay-now]').first().click()
|
||||
.get('[data-cy=pay-now-dropdown]').click()
|
||||
.get('[data-cy=pay-with-0]').click();
|
||||
|
||||
cy.get('#card_number').type('4007000000027')
|
||||
.get('#cardholder_name').type('Invoice Ninja Rocks')
|
||||
.get('[class=expiry]').type('12/28')
|
||||
.get('[name=cvc]').type('100');
|
||||
|
||||
cy.get('#pay-now').click();
|
||||
});
|
||||
|
||||
cy.location('pathname', {timeout: 60000}).should('include', '/client/payments/VolejRejNm');
|
||||
});
|
||||
|
||||
it('should pay with new card & save credit card for future use', function () {
|
||||
cy.visit('/client/invoices').then((contentWindow) => {
|
||||
cy.get('[data-cy=pay-now]').first().click()
|
||||
.get('[data-cy=pay-now-dropdown]').click()
|
||||
.get('[data-cy=pay-with-0]').click();
|
||||
|
||||
cy.get('#card_number').type('4007000000027')
|
||||
.get('#cardholder_name').type('Invoice Ninja Rocks')
|
||||
.get('[class=expiry]').type('12/28')
|
||||
.get('[name=cvc]').type('100');
|
||||
|
||||
cy.get('[name=token-billing-checkbox]').first().check();
|
||||
|
||||
cy.get('#pay-now').click();
|
||||
});
|
||||
|
||||
cy.location('pathname', {timeout: 60000}).should('include', '/client/payments/Wpmbk5ezJn');
|
||||
});
|
||||
|
||||
it('should pay with saved card (token)', function () {
|
||||
cy.visit('/client/invoices')
|
||||
.get('[data-cy=pay-now]').first().click()
|
||||
.get('[data-cy=pay-now-dropdown]').click()
|
||||
.get('[data-cy=pay-with-0]').click();
|
||||
|
||||
cy.get('[name=payment-type]').first().check();
|
||||
|
||||
cy.get('#pay-now').click();
|
||||
|
||||
cy.wait(2000);
|
||||
|
||||
cy.location('pathname', {timeout: 60000}).should('include', '/client/payments/Opnel5aKBz');
|
||||
});
|
||||
|
||||
|
||||
it('should be able to remove payment method', function () {
|
||||
cy.visit('/client/payment_methods')
|
||||
.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.');
|
||||
});
|
||||
|
||||
it('should be able to add credit card (standalone)', function () {
|
||||
cy.visit('/client/payment_methods')
|
||||
.get('[data-cy=add-payment-method]').click()
|
||||
.get('[data-cy=add-credit-card-link]').click();
|
||||
|
||||
cy.get('#card_number').type('4007000000027')
|
||||
.get('#cardholder_name').type('Invoice Ninja Rocks')
|
||||
.get('[class=expiry]').type('12/28')
|
||||
.get('[name=cvc]').type('100');
|
||||
|
||||
cy.get('#card_button').click();
|
||||
|
||||
cy.location('pathname', {timeout: 60000}.should('include', '/client/payment_methods'));
|
||||
});
|
||||
});
|
@ -10,15 +10,14 @@ describe('Stripe: Credit card testing', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cy.visit('/client/logout');
|
||||
cy.visit('/client/logout').visit('/client/login');
|
||||
});
|
||||
|
||||
it('should pay with new card', 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-0]').click();
|
||||
cy.visit('/client/invoices')
|
||||
.get('[data-cy=pay-now]').first().click()
|
||||
.get('[data-cy=pay-now-dropdown]').click()
|
||||
.get('[data-cy=pay-with-0]').click();
|
||||
|
||||
cy.get('#cardholder-name').type('Invoice Ninja Rocks');
|
||||
cy.getWithinIframe('[name=cardnumber]').type('4242424242424242');
|
||||
@ -28,15 +27,14 @@ describe('Stripe: Credit card testing', () => {
|
||||
|
||||
cy.get('#pay-now').click();
|
||||
|
||||
cy.url().should('contain', '/client/payments/VolejRejNm');
|
||||
cy.location('pathname', {timeout: 60000}).should('include', '/client/payments/VolejRejNm');
|
||||
});
|
||||
|
||||
it('should pay with new card & save credit card for future use', 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-0]').click();
|
||||
cy.visit('/client/invoices')
|
||||
.get('[data-cy=pay-now]').first().click()
|
||||
.get('[data-cy=pay-now-dropdown]').click()
|
||||
.get('[data-cy=pay-with-0]').click();
|
||||
|
||||
cy.get('#cardholder-name').type('Invoice Ninja Rocks');
|
||||
cy.getWithinIframe('[name=cardnumber]').type('4242424242424242');
|
||||
@ -48,27 +46,25 @@ describe('Stripe: Credit card testing', () => {
|
||||
|
||||
cy.get('#pay-now').click();
|
||||
|
||||
cy.url().should('contain', '/client/payments/Wpmbk5ezJn');
|
||||
cy.location('pathname', {timeout: 60000}).should('include', '/client/payments/Wpmbk5ezJn');
|
||||
});
|
||||
|
||||
it('should pay with saved card (token)', 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-0]').click();
|
||||
cy.visit('/client/invoices')
|
||||
.get('[data-cy=pay-now]').first().click()
|
||||
.get('[data-cy=pay-now-dropdown]').click()
|
||||
.get('[data-cy=pay-with-0]').click();
|
||||
|
||||
cy.get('[name=payment-type]').first().check();
|
||||
|
||||
cy.get('#pay-now').click();
|
||||
|
||||
cy.url().should('contain', '/client/payments/Opnel5aKBz');
|
||||
cy.location('pathname', {timeout: 60000}).should('include', '/client/payments/Opnel5aKBz');
|
||||
});
|
||||
|
||||
it('should be able to remove payment method', function () {
|
||||
cy.visit('/client/payment_methods');
|
||||
|
||||
cy.get('[data-cy=view-payment-method]').click();
|
||||
cy.visit('/client/payment_methods')
|
||||
.get('[data-cy=view-payment-method]').click();
|
||||
|
||||
cy.get('#open-delete-popup').click();
|
||||
|
||||
@ -80,10 +76,9 @@ describe('Stripe: Credit card testing', () => {
|
||||
});
|
||||
|
||||
it('should be able to add credit card (standalone)', function () {
|
||||
cy.visit('/client/payment_methods');
|
||||
|
||||
cy.get('[data-cy=add-payment-method]').click();
|
||||
cy.get('[data-cy=add-credit-card-link]').click();
|
||||
cy.visit('/client/payment_methods')
|
||||
.get('[data-cy=add-payment-method]').click()
|
||||
.get('[data-cy=add-credit-card-link]').click();
|
||||
|
||||
cy.get('#cardholder-name').type('Invoice Ninja Rocks');
|
||||
cy.getWithinIframe('[name=cardnumber]').type('4242424242424242');
|
||||
@ -93,6 +88,8 @@ describe('Stripe: Credit card testing', () => {
|
||||
|
||||
cy.get('#authorize-card').click();
|
||||
|
||||
cy.url().should('contain', '/client/payment_methods');
|
||||
cy.location('pathname', {timeout: 60000})
|
||||
.should('include', '/client/payment_methods')
|
||||
.get('[data-cy=pm-last4]').contains('**** 4242');
|
||||
});
|
||||
});
|
||||
|
24
cypress/support/commands.js
vendored
24
cypress/support/commands.js
vendored
@ -27,27 +27,13 @@ const axios = require('axios');
|
||||
const fixture = require('../fixtures/example.json');
|
||||
|
||||
Cypress.Commands.add('clientLogin', () => {
|
||||
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();
|
||||
});
|
||||
});
|
||||
cy.visit('/client/login')
|
||||
.get('#email').type('user@example.com')
|
||||
.get('#password').type('password')
|
||||
.get('#loginBtn').click();
|
||||
});
|
||||
|
||||
Cypress.Commands.add('iframeLoaded', { prevSubject: 'element' }, ($iframe) => {
|
||||
Cypress.Commands.add('iframeLoaded', {prevSubject: 'element'}, ($iframe) => {
|
||||
const contentWindow = $iframe.prop('contentWindow');
|
||||
return new Promise((resolve) => {
|
||||
if (contentWindow) {
|
||||
|
@ -77,7 +77,7 @@
|
||||
{{ $payment_method->meta->exp_month}} / {{ $payment_method->meta->exp_year }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-no-wrap text-sm leading-5 text-gray-500">
|
||||
<td class="px-6 py-4 whitespace-no-wrap text-sm leading-5 text-gray-500" data-cy="pm-last4">
|
||||
@isset($payment_method->meta->last4)
|
||||
**** {{ $payment_method->meta->last4 }}
|
||||
@endisset
|
||||
|
Loading…
Reference in New Issue
Block a user