e2e tests for create client path fixed

This commit is contained in:
Carlos 2017-10-29 15:49:44 +01:00
parent 74466aec3f
commit 70afe95459
3 changed files with 197 additions and 173 deletions

View File

@ -110,9 +110,9 @@ Nightmare.action('countSearchResults', function(selector, done) {
}); });
Nightmare.action('waitForNumberOfElements', function(selector, count, done) { Nightmare.action('waitForNumberOfElements', function(selector, count, done) {
this.wait((selector, count) => { this.wait((resultSelector, expectedCount) => {
return document.querySelectorAll(selector).length === count; return document.querySelectorAll(resultSelector).length === expectedCount;
}, selectors.clientsView.searchResult, count) }, selector, count)
.then(done); .then(done);
}); });

View File

@ -7,12 +7,16 @@ export default {
}, },
globalItems: { globalItems: {
topBar: 'vn-topbar', topBar: 'vn-topbar',
snackbarIsActive: '.mdl-snackbar--active > .mdl-snackbar__text' snackbarIsActive: '.mdl-snackbar--active > .mdl-snackbar__text',
applicationsMenuButton: '#apps > i',
applicationsMenuVisible: 'body > vn-app > vn-vertical > vn-topbar > header > vn-main-menu > div .is-visible > div',
clientsButton: 'body > vn-app > vn-vertical > vn-topbar > header > vn-main-menu > div > div > ul > li:nth-child(1)'
}, },
moduleAccessView: { moduleAccessView: {
clientsSectionButton: 'body > vn-app > vn-vertical > vn-vertical > vn-home > vn-vertical > vn-module-container > a:nth-child(1)' clientsSectionButton: 'body > vn-app > vn-vertical > vn-vertical > vn-home > vn-vertical > vn-module-container > a:nth-child(1)'
}, },
clientsView: { clientsIndex: {
searchClientInput: 'body > vn-app > vn-vertical > vn-vertical > vn-client-index > div > div > vn-card:nth-child(1) > div > vn-horizontal > vn-searchbar > form > vn-horizontal > vn-textfield > div > input', searchClientInput: 'body > vn-app > vn-vertical > vn-vertical > vn-client-index > div > div > vn-card:nth-child(1) > div > vn-horizontal > vn-searchbar > form > vn-horizontal > vn-textfield > div > input',
searchButton: 'body > vn-app > vn-vertical > vn-vertical > vn-client-index > div > div > vn-card:nth-child(1) > div > vn-horizontal > vn-searchbar > form > vn-horizontal > vn-icon-button > button', searchButton: 'body > vn-app > vn-vertical > vn-vertical > vn-client-index > div > div > vn-card:nth-child(1) > div > vn-horizontal > vn-searchbar > form > vn-horizontal > vn-icon-button > button',
searchResult: 'body > vn-app > vn-vertical > vn-vertical > vn-client-index > div > div > vn-card:nth-child(2) > div > vn-item-client', searchResult: 'body > vn-app > vn-vertical > vn-vertical > vn-client-index > div > div > vn-card:nth-child(2) > div > vn-item-client',
@ -27,4 +31,3 @@ export default {
createButton: 'body > vn-app > vn-vertical > vn-vertical > vn-client-create > form > div > vn-button-bar > vn-button > button' createButton: 'body > vn-app > vn-vertical > vn-vertical > vn-client-create > form > div > vn-button-bar > vn-button > button'
} }
}; };

View File

@ -5,7 +5,8 @@ import {catchErrors} from '../../services/utils/jasmineHelpers';
const nightmare = createNightmare(); const nightmare = createNightmare();
const moduleAccessViewHashURL = '#!/'; const moduleAccessViewHashURL = '#!/';
describe('Clients path', () => { fdescribe('Clients path', () => {
describe('Create', () => {
it('should log in', done => { it('should log in', done => {
nightmare nightmare
.login() .login()
@ -21,7 +22,7 @@ describe('Clients path', () => {
it('should access to the clients index by clicking the clients button', done => { it('should access to the clients index by clicking the clients button', done => {
nightmare nightmare
.click(selectors.moduleAccessView.clientsSectionButton) .click(selectors.moduleAccessView.clientsSectionButton)
.wait(selectors.clientsView.createClientButton) .wait(selectors.clientsIndex.createClientButton)
.url() .url()
.then(url => { .then(url => {
expect(url).toBe(config.url + '#!/clients'); expect(url).toBe(config.url + '#!/clients');
@ -32,11 +33,11 @@ describe('Clients path', () => {
it(`should search for the user Carol Danvers to confirm it isn't created yet`, done => { it(`should search for the user Carol Danvers to confirm it isn't created yet`, done => {
nightmare nightmare
.wait(selectors.clientsView.searchResult) .wait(selectors.clientsIndex.searchResult)
.type(selectors.clientsView.searchClientInput, 'Carol Danvers') .type(selectors.clientsIndex.searchClientInput, 'Carol Danvers')
.click(selectors.clientsView.searchButton) .click(selectors.clientsIndex.searchButton)
.waitForNumberOfElements(selectors.clientsView.searchResult, 0) .waitForNumberOfElements(selectors.clientsIndex.searchResult, 0)
.countSearchResults(selectors.clientsView.searchResult) .countSearchResults(selectors.clientsIndex.searchResult)
.then(result => { .then(result => {
expect(result).toBe(0); expect(result).toBe(0);
done(); done();
@ -46,7 +47,7 @@ describe('Clients path', () => {
it('should access to the create client view by clicking the create-client floating button', done => { it('should access to the create client view by clicking the create-client floating button', done => {
nightmare nightmare
.click(selectors.clientsView.createClientButton) .click(selectors.clientsIndex.createClientButton)
.wait(selectors.createClientView.createButton) .wait(selectors.createClientView.createButton)
.url() .url()
.then(url => { .then(url => {
@ -157,8 +158,11 @@ describe('Clients path', () => {
.catch(catchErrors(done)); .catch(catchErrors(done));
}); });
// it(`should create a new user with all it's data`, done => { // the below tests should be enabled when the e2e execution restores fixtures
it(`should create a new user with all it's data`, done => {
// nightmare // nightmare
// .waitForSnackbarReset()
// .wait(selectors.createClientView.email) // .wait(selectors.createClientView.email)
// .clearInput(selectors.createClientView.email) // .clearInput(selectors.createClientView.email)
// .type(selectors.createClientView.name, 'Carol Danvers') // .type(selectors.createClientView.name, 'Carol Danvers')
@ -170,9 +174,26 @@ describe('Clients path', () => {
// .wait(selectors.globalItems.snackbarIsActive) // .wait(selectors.globalItems.snackbarIsActive)
// .getInnerText(selectors.globalItems.snackbarIsActive) // .getInnerText(selectors.globalItems.snackbarIsActive)
// .then(result => { // .then(result => {
// expect(result).toContain(`some validation message`); // expect(result).toContain(`¡Datos guardados!`);
// done(); // done();
// }) // })
// .catch(catchErrors(done)); // .catch(catchErrors(done));
// }); // });
});
describe('Index', () => {
// it('should click on the Clients button of the top bar menu', done => {
// nightmare
// .waitToClick(selectors.globalItems.applicationsMenuButton)
// .wait(selectors.globalItems.applicationsMenuVisible)
// .waitToClick(selectors.globalItems.clientsButton)
// .wait(selectors.clientsIndex.createClientButton)
// .url()
// .then(url => {
// expect(url).toBe(config.url + '#!/clients');
// done();
// })
// .catch(catchErrors(done));
// });
});
}); });