/// /* 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.clearLocalStorage({ domain: null }); cy.clearCookies({ domain: null }); }); it('should visit user login screen', () => cy.userLogin()); describe('Project Edition process', () => { it('should login', () => cy.login()); it('should visit the project list screen', () => cy.naviagte('/admin/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.naviagte('/project/@' + id + '/project-information/project-edit'); })); }); it('should enter new project data', () => { cy.get('#project-edit input[name="customer.name"]').clear().type(customerName); cy.get('#project-edit input[name="customer.name"]').should('have.value', customerName); cy.get('#project-edit input[name="name"]').clear().type(projectName); cy.get('#project-edit input[name="name"]').should('have.value', projectName); cy.get('#project-edit textarea[name="description"]').clear().type(description); cy.get('#project-edit textarea[name="description"]').should('have.value', description); }); it('should click button to save the project', () => { cy.get('#project-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('/project/@' + id + '/project-information'); }); })); // Workaround - component reactivity bug cy.reload(); cy.get('.accept-button').click(); // End workaround }); 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"); }); }); });