1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 21:22:58 +01:00
invoiceninja/cypress/support/commands.js
2020-10-13 15:46:11 +02:00

109 lines
3.1 KiB
JavaScript
Vendored

// ***********************************************
// This example commands.js shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************
//
//
// -- This is a parent command --
// Cypress.Commands.add("login", (email, password) => { ... })
//
//
// -- This is a child command --
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
//
//
// -- This is a dual command --
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
//
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
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();
});
});
});
Cypress.Commands.add('iframeLoaded', { prevSubject: 'element' }, ($iframe) => {
const contentWindow = $iframe.prop('contentWindow');
return new Promise((resolve) => {
if (contentWindow) {
resolve(contentWindow);
} else {
$iframe.on('load', () => {
resolve(contentWindow);
});
}
});
});
Cypress.Commands.add(
'getInDocument',
{
prevSubject:
'Permission denied to access property "document" on cross-origin object',
},
(document, selector) => Cypress.$(selector, document)
);
Cypress.Commands.add('getWithinIframe', (targetElement) =>
cy
.get('iframe')
.iframeLoaded()
.its('document')
.getInDocument(targetElement)
);
Cypress.Commands.add('useGateway', (gateway) => {
let body = {
settings: {
entity: 'App\\Models\\Client',
industry_id: '',
size_id: '',
currency_id: '1',
company_gateway_ids: gateway,
},
};
let options = {
headers: {
'X-Api-Secret': 'superdoopersecrethere',
'X-Api-Token':
'S0x8behDk8HG8PI0i8RXdpf2AVud5b993pE8vata7xmm4RgW6u3NeGC8ibWIUjZv',
'X-Requested-With': 'XMLHttpRequest',
},
};
axios
.put(
`http://localhost:8000/api/v1/clients/${fixture.first}`,
body,
options
)
.then((response) => console.log(response))
.catch((error) => console.log(error.message));
});