/// /* globals cy, expect */ context('Edit User Browser Testing', () => { let userFirstName = 'Edited User First Name ', userLastName = 'Edited User Last Name ', jobDescription = 'Edited Job Description ', city = 'Edited City ', phone = '+1234', website = 'https://test.site/'; before(() => { cy.randomNum().then(num => { userFirstName += num; userLastName += num; jobDescription += num; city += num; phone += num; website += 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('User Edition process', () => { it('should visit the user edit screen', () => { cy.visit('/profile/solid-profile-edit-profile'); cy.location().should((loc) => { expect(loc.pathname).to.eq('/profile/solid-profile-edit-profile'); }); }); /// Workaround - Routing bug - user won't land on edit profile screen it('should navigate to user edit screen', () => { cy.get('#solid-profile-my-profile solid-link[next="solid-profile-edit-profile"]').click(); }); /// End workaround it('should enter new user data', () => { cy.get('#solid-profile-edit-profile input[name="first_name"]').clear().type(userFirstName); cy.get('#solid-profile-edit-profile input[name="first_name"]').should('have.value', userFirstName); cy.get('#solid-profile-edit-profile input[name="last_name"]').clear().type(userLastName); cy.get('#solid-profile-edit-profile input[name="last_name"]').should('have.value', userLastName); cy.get('#solid-profile-edit-profile textarea[name="profile.job"]').clear().type(jobDescription); cy.get('#solid-profile-edit-profile textarea[name="profile.job"]').should('have.value', jobDescription); cy.get('#solid-profile-edit-profile input[name="profile.city"]').clear().type(city); cy.get('#solid-profile-edit-profile input[name="profile.city"]').should('have.value', city); cy.get('#solid-profile-edit-profile input[name="profile.phone"]').clear().type(phone); cy.get('#solid-profile-edit-profile input[name="profile.phone"]').should('have.value', phone); cy.get('#solid-profile-edit-profile input[name="profile.website"]').clear().type(website); cy.get('#solid-profile-edit-profile input[name="profile.website"]').should('have.value', website); }); it('should click button to save the user', () => { cy.get('#solid-profile-edit-profile input[value="ENREGISTRER"]').click(); }); it('should land on user information screen', () => { cy.location().should(location => { /// Workaround - Routing bug - route pathname won't be /profile as it should expect(location.pathname).to.eq('/'); // expect(location.pathname).to.eq('/profile'); /// End workaround }); }); it('should show edited user data on user information screen', () => { cy.contains('solid-display-value[name="name"]', userFirstName + ' ' + userLastName).should("exist"); cy.contains('solid-display-value[name="profile.job"]', jobDescription).should("exist"); cy.contains('solid-display-value[name="profile.city"]', city).should("exist"); cy.contains('directory-link-tel a', phone).should("exist"); cy.contains('directory-website a', website).should("exist"); }); }); });