e2e tests for create client path fixed
This commit is contained in:
parent
74466aec3f
commit
70afe95459
|
@ -110,9 +110,9 @@ Nightmare.action('countSearchResults', function(selector, done) {
|
|||
});
|
||||
|
||||
Nightmare.action('waitForNumberOfElements', function(selector, count, done) {
|
||||
this.wait((selector, count) => {
|
||||
return document.querySelectorAll(selector).length === count;
|
||||
}, selectors.clientsView.searchResult, count)
|
||||
this.wait((resultSelector, expectedCount) => {
|
||||
return document.querySelectorAll(resultSelector).length === expectedCount;
|
||||
}, selector, count)
|
||||
.then(done);
|
||||
});
|
||||
|
||||
|
|
|
@ -7,12 +7,16 @@ export default {
|
|||
},
|
||||
globalItems: {
|
||||
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: {
|
||||
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',
|
||||
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',
|
||||
|
@ -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'
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -5,174 +5,195 @@ import {catchErrors} from '../../services/utils/jasmineHelpers';
|
|||
const nightmare = createNightmare();
|
||||
const moduleAccessViewHashURL = '#!/';
|
||||
|
||||
describe('Clients path', () => {
|
||||
it('should log in', done => {
|
||||
nightmare
|
||||
.login()
|
||||
.waitForURL(moduleAccessViewHashURL)
|
||||
.url()
|
||||
.then(url => {
|
||||
expect(url).toBe(config.url + moduleAccessViewHashURL);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
fdescribe('Clients path', () => {
|
||||
describe('Create', () => {
|
||||
it('should log in', done => {
|
||||
nightmare
|
||||
.login()
|
||||
.waitForURL(moduleAccessViewHashURL)
|
||||
.url()
|
||||
.then(url => {
|
||||
expect(url).toBe(config.url + moduleAccessViewHashURL);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should access to the clients index by clicking the clients button', done => {
|
||||
nightmare
|
||||
.click(selectors.moduleAccessView.clientsSectionButton)
|
||||
.wait(selectors.clientsIndex.createClientButton)
|
||||
.url()
|
||||
.then(url => {
|
||||
expect(url).toBe(config.url + '#!/clients');
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it(`should search for the user Carol Danvers to confirm it isn't created yet`, done => {
|
||||
nightmare
|
||||
.wait(selectors.clientsIndex.searchResult)
|
||||
.type(selectors.clientsIndex.searchClientInput, 'Carol Danvers')
|
||||
.click(selectors.clientsIndex.searchButton)
|
||||
.waitForNumberOfElements(selectors.clientsIndex.searchResult, 0)
|
||||
.countSearchResults(selectors.clientsIndex.searchResult)
|
||||
.then(result => {
|
||||
expect(result).toBe(0);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should access to the create client view by clicking the create-client floating button', done => {
|
||||
nightmare
|
||||
.click(selectors.clientsIndex.createClientButton)
|
||||
.wait(selectors.createClientView.createButton)
|
||||
.url()
|
||||
.then(url => {
|
||||
expect(url).toBe(config.url + '#!/create');
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty', done => {
|
||||
nightmare
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toBe('No hay cambios que guardar');
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but name', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.type(selectors.createClientView.name, 'Carol Danvers')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but Tax Number', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.name)
|
||||
.type(selectors.createClientView.taxNumber, 'Avengers Tax Number')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but Business Name', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.taxNumber)
|
||||
.type(selectors.createClientView.businessName, 'Avengers team')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but User Name', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.businessName)
|
||||
.type(selectors.createClientView.userName, 'CaptainMarvel')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but email while email have incorrect format', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.userName)
|
||||
.type(selectors.createClientView.email, 'I will save the Avengers!')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toBe(`Algunos campos no son válidos`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but email', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.email)
|
||||
.type(selectors.createClientView.email, 'CarolDanvers@verdnatura.es')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(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
|
||||
// .waitForSnackbarReset()
|
||||
// .wait(selectors.createClientView.email)
|
||||
// .clearInput(selectors.createClientView.email)
|
||||
// .type(selectors.createClientView.name, 'Carol Danvers')
|
||||
// .type(selectors.createClientView.taxNumber, 'Avengers Tax Number')
|
||||
// .type(selectors.createClientView.businessName, 'Avengers Team')
|
||||
// .type(selectors.createClientView.userName, 'CaptainMarvel')
|
||||
// .type(selectors.createClientView.email, 'CarolDanvers@verdnatura.es')
|
||||
// .click(selectors.createClientView.createButton)
|
||||
// .wait(selectors.globalItems.snackbarIsActive)
|
||||
// .getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
// .then(result => {
|
||||
// expect(result).toContain(`¡Datos guardados!`);
|
||||
// done();
|
||||
// })
|
||||
// .catch(catchErrors(done));
|
||||
// });
|
||||
});
|
||||
|
||||
it('should access to the clients index by clicking the clients button', done => {
|
||||
nightmare
|
||||
.click(selectors.moduleAccessView.clientsSectionButton)
|
||||
.wait(selectors.clientsView.createClientButton)
|
||||
.url()
|
||||
.then(url => {
|
||||
expect(url).toBe(config.url + '#!/clients');
|
||||
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));
|
||||
// });
|
||||
});
|
||||
|
||||
it(`should search for the user Carol Danvers to confirm it isn't created yet`, done => {
|
||||
nightmare
|
||||
.wait(selectors.clientsView.searchResult)
|
||||
.type(selectors.clientsView.searchClientInput, 'Carol Danvers')
|
||||
.click(selectors.clientsView.searchButton)
|
||||
.waitForNumberOfElements(selectors.clientsView.searchResult, 0)
|
||||
.countSearchResults(selectors.clientsView.searchResult)
|
||||
.then(result => {
|
||||
expect(result).toBe(0);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should access to the create client view by clicking the create-client floating button', done => {
|
||||
nightmare
|
||||
.click(selectors.clientsView.createClientButton)
|
||||
.wait(selectors.createClientView.createButton)
|
||||
.url()
|
||||
.then(url => {
|
||||
expect(url).toBe(config.url + '#!/create');
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty', done => {
|
||||
nightmare
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toBe('No hay cambios que guardar');
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but name', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.type(selectors.createClientView.name, 'Carol Danvers')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but Tax Number', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.name)
|
||||
.type(selectors.createClientView.taxNumber, 'Avengers Tax Number')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but Business Name', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.taxNumber)
|
||||
.type(selectors.createClientView.businessName, 'Avengers team')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but User Name', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.businessName)
|
||||
.type(selectors.createClientView.userName, 'CaptainMarvel')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but email while email have incorrect format', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.userName)
|
||||
.type(selectors.createClientView.email, 'I will save the Avengers!')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toBe(`Algunos campos no son válidos`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
it('should receive an error when clicking the create button having all the form fields empty but email', done => {
|
||||
nightmare
|
||||
.waitForSnackbarReset()
|
||||
.clearInput(selectors.createClientView.email)
|
||||
.type(selectors.createClientView.email, 'CarolDanvers@verdnatura.es')
|
||||
.click(selectors.createClientView.createButton)
|
||||
.wait(selectors.globalItems.snackbarIsActive)
|
||||
.getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
.then(result => {
|
||||
expect(result).toContain(`Error: La instancia`);
|
||||
done();
|
||||
})
|
||||
.catch(catchErrors(done));
|
||||
});
|
||||
|
||||
// it(`should create a new user with all it's data`, done => {
|
||||
// nightmare
|
||||
// .wait(selectors.createClientView.email)
|
||||
// .clearInput(selectors.createClientView.email)
|
||||
// .type(selectors.createClientView.name, 'Carol Danvers')
|
||||
// .type(selectors.createClientView.taxNumber, 'Avengers Tax Number')
|
||||
// .type(selectors.createClientView.businessName, 'Avengers Team')
|
||||
// .type(selectors.createClientView.userName, 'CaptainMarvel')
|
||||
// .type(selectors.createClientView.email, 'CarolDanvers@verdnatura.es')
|
||||
// .click(selectors.createClientView.createButton)
|
||||
// .wait(selectors.globalItems.snackbarIsActive)
|
||||
// .getInnerText(selectors.globalItems.snackbarIsActive)
|
||||
// .then(result => {
|
||||
// expect(result).toContain(`some validation message`);
|
||||
// done();
|
||||
// })
|
||||
// .catch(catchErrors(done));
|
||||
// });
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue