hubl/cypress/integration/edit-project.spec.js
2021-02-22 21:27:58 +01:00

70 lines
2.8 KiB
JavaScript

/// <reference types="Cypress" />
/* globals cy, expect */
context('Edit Project Browser Testing', () => {
let projectName = 'Edited Test Project ',
customerName = 'Edited Test Customer ',
description = 'Edited Test Description ',
menuQuery = [
'solid-display.project-tab',
'solid-display:last-child',
'solid-display[order-by="customer.name"]'
];
before(() => {
cy.randomNum().then(num => {
projectName += num;
customerName += num;
description += num;
});
cy.clearLocalStorageSnapshot();
cy.clearLocalStorage({ domain: null });
cy.clearCookies({ domain: null });
});
beforeEach(() => cy.restoreLocalStorage());
afterEach(() => cy.saveLocalStorage());
it('should visit user login screen', () => cy.userLogin());
it('should login', () => cy.login());
describe('Project Edition process', () => {
it('should visit the project list screen', () => {
cy.visit('/admin-projects');
cy.location().should((loc) => {
expect(loc.pathname).to.eq('/admin-projects');
});
});
it('should visit the last project edit screen', () => {
cy.get(menuQuery.join(' '))
.invoke('attr', 'data-src')
.then(url => cy.encodeUrl(url).then(id => {
cy.visit('/projects/@' + id + '/projects-information/projects-edit');
cy.location().should((loc) => {
expect(loc.pathname).to.eq('/projects/@' + id + '/projects-information/projects-edit');
});
}));
});
it('should enter new project data', () => {
cy.get('#projects-edit input[name="customer.name"]').clear().type(customerName);
cy.get('#projects-edit input[name="customer.name"]').should('have.value', customerName);
cy.get('#projects-edit input[name="name"]').clear().type(projectName);
cy.get('#projects-edit input[name="name"]').should('have.value', projectName);
cy.get('#projects-edit textarea[name="description"]').clear().type(description);
cy.get('#projects-edit textarea[name="description"]').should('have.value', description);
});
it('should click button to save the project', () => {
cy.get('#projects-edit input[value="Enregistrer"]').click();
});
it('should land on project information screen', () => {
cy.get(menuQuery.join(' '))
.invoke('attr', 'data-src')
.then(url => cy.encodeUrl(url).then(id => {
cy.location().should((loc) => {
expect(loc.pathname).to.eq('/projects/@' + id + '/projects-information');
});
}));
});
it('should show edited project data on project information screen', () => {
cy.contains('solid-display-value[name="customer.name"]', customerName).should("exist");
cy.contains('solid-display-value[name="name"]', projectName).should("exist");
});
});
});