Remove vagrant and add testing docker

This commit is contained in:
Thilina Pituwala
2020-05-23 20:01:53 +02:00
parent 1e50da36e6
commit c366248434
32 changed files with 3635 additions and 115 deletions

View File

@@ -20,9 +20,14 @@ class IceCypressTest {
cy.server().route('GET', `/${config.URL_PREFIX}/service.php*`).as('getElement');
cy.get(`#${this.element} table tbody`).find('tr').first()
.find(viewButtonSelector || `.center div img[${this.titleDataAttributeName}='View']`)
.should("be.visible")
.click();
cy.wait('@getElement').its('status').should('be', config.DEFAULT_WAIT_TIME);
if (config.WAIT_ON_TIME) {
cy.wait(config.WAIT_TIME);
} else {
cy.wait('@getElement').its('status').should('be', config.DEFAULT_STATUS);
}
}
viewElementValidate(cy, validation = []) {
@@ -34,9 +39,14 @@ class IceCypressTest {
editElement(cy, update, editButtonSelector = null) {
cy.server().route('POST', `/${config.URL_PREFIX}/service.php*`).as('getElement');
cy.get(`#${this.element} table tbody`).find('tr').first().find(editButtonSelector || `.center div img[${this.titleDataAttributeName}='Edit']`)
.should("be.visible")
.click();
cy.wait('@getElement').its('status').should('be', config.DEFAULT_WAIT_TIME);
if (config.WAIT_ON_TIME) {
cy.wait(config.WAIT_TIME);
} else {
cy.wait('@getElement').its('status').should('be', config.DEFAULT_STATUS);
}
update.forEach((item) => {
cy.get(item[0]).clear().type(item[1]).should('have.value', item[1]);
@@ -44,14 +54,15 @@ class IceCypressTest {
}
select2Click(id, value) {
cy.get(`#s2id_${id}`).click();
cy.get(`#s2id_${id}`).should("be.visible").click();
cy.focused().clear().type(value).should('have.value', value);
cy.get('.select2-drop:visible').find('.select2-results li').first()
.should("be.visible")
.click();
}
clickSave(cy) {
cy.get(`#${this.element}Form .saveBtn`).click();
cy.get(`#${this.element}Form .saveBtn`).should("be.visible").click();
}
editElementValidate(cy, validation = [], editButtonSelector) {
@@ -62,14 +73,23 @@ class IceCypressTest {
}
// Wait for data table response
cy.wait('@getAfterSave').its('status').should('be', config.DEFAULT_WAIT_TIME);
if (config.WAIT_ON_TIME) {
cy.wait(config.WAIT_TIME);
} else {
cy.wait('@getAfterSave').its('status').should('be', config.DEFAULT_STATUS);
}
cy.server().route('POST', `/${config.URL_PREFIX}/service.php*`).as('getElementAfterSave');
// Click on edit and wait
cy.get(`#${this.element} table tbody`).find('tr').first().find(editButtonSelector || `.center div img[${this.titleDataAttributeName}='Edit']`)
.should("be.visible")
.click();
cy.wait('@getElementAfterSave').its('status').should('be', config.DEFAULT_WAIT_TIME);
if (config.WAIT_ON_TIME) {
cy.wait(config.WAIT_TIME);
} else {
cy.wait('@getElementAfterSave').its('status').should('be', config.DEFAULT_STATUS);
}
validation.forEach((item) => {
cy.get(item[0]).then(element => expect(element.val()).eq(item[1]));
@@ -95,7 +115,11 @@ class IceCypressTest {
cy.visit(`${config.BASE_URL}?${this.moduleUrl}`);
// Wait for data table response
cy.wait('@get').its('status').should('be', config.DEFAULT_WAIT_TIME);
if (config.WAIT_ON_TIME) {
cy.wait(config.WAIT_TIME);
} else {
cy.wait('@get').its('status').should('be', config.DEFAULT_STATUS);
}
}
switchTab(cy, tabName = null) {
@@ -104,8 +128,12 @@ class IceCypressTest {
} else {
cy.server().route('POST', `/${config.URL_PREFIX}/service.php*`).as('getTab');
}
cy.get(tabName || `#tab${this.element}`).click();
cy.wait('@getTab').its('status').should('be', config.DEFAULT_WAIT_TIME);
cy.get(tabName || `#tab${this.element}`).should("be.visible").click();
if (config.WAIT_ON_TIME) {
cy.wait(config.WAIT_TIME);
} else {
cy.wait('@getTab').its('status').should('be', config.DEFAULT_STATUS);
}
}
}

View File

@@ -27,12 +27,13 @@ const config = require('./config');
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
Cypress.Commands.add('login', (user, password) => {
cy.visit(`${config.BASE_URL}login.php`);
cy.visit(`${config.BASE_URL}logout.php`);
cy.get('#username').type(user).should('have.value', user);
cy.get('#password').type(password).should('have.value', password);
cy.get('.btn').first().click();
});
Cypress.Commands.add('resetDatabase', () => {
cy.exec('vagrant ssh -c \'cd /vagrant/core/robo; php robo.phar reset:db test; php robo.phar create:tables test; php robo.phar migrate:all test; php robo.phar execute:fixtures test\'');
cy.visit(`${config.BASE_URL}reset-db.php`);
//cy.exec('vagrant ssh -c \'cd /vagrant/core/robo; php robo.phar reset:db test; php robo.phar create:tables test; php robo.phar migrate:all test; php robo.phar execute:fixtures test\'');
});

View File

@@ -1,13 +1,19 @@
const BASE_URL = 'http://clients.icehrmpro.test/test/';
const BASE_URL = 'http://icehrm:8090/app/';
//const BASE_URL = 'http://clients.icehrmpro.test/test/';
const DEFAULT_MAX_PAGE_SIZE = 15;
const DEFAULT_WAIT_TIME = 500;
const DEFAULT_STATUS = 200;
const DEFAULT_USER_PASS = 'demouserpwd';
const URL_PREFIX = 'test';
const URL_PREFIX = 'app';
const WAIT_ON_TIME = true;
const WAIT_TIME = 500;
module.exports = {
BASE_URL,
DEFAULT_MAX_PAGE_SIZE,
DEFAULT_WAIT_TIME,
DEFAULT_STATUS,
DEFAULT_USER_PASS,
URL_PREFIX,
WAIT_ON_TIME,
WAIT_TIME,
};

View File

@@ -18,3 +18,9 @@ import './commands';
// Alternatively you can use CommonJS syntax:
// require('./commands')
Cypress.on('uncaught:exception', (err, runnable) => {
// returning false here prevents Cypress from
// failing the test
return false
});