describe('WorkerNotificationsManager', () => { const salesPersonId = 18; const developerId = 9; const activeList = ':nth-child(1) > .q-list'; const availableList = ':nth-child(2) > .q-list'; const firstActiveNotification = ':nth-child(1) > .q-list > :nth-child(1) > .q-item > .q-toggle > .q-toggle__inner'; const firstAvailableNotification = ':nth-child(2) > .q-list > :nth-child(1) > .q-item > .q-toggle > .q-toggle__inner'; beforeEach(() => { cy.viewport(1280, 720); }); it('should throw an error if you try to change a notification that is not yours', () => { cy.login('developer'); cy.visit(`/#/worker/${salesPersonId}/notifications`); cy.get(firstAvailableNotification).click(); cy.notificationHas( '.q-notification__message', 'The notification subscription of this worker cant be modified' ); }); it('should active a notification that is yours', () => { cy.login('developer'); cy.visit(`/#/worker/${developerId}/notifications`); cy.waitForElement(activeList); cy.waitForElement(availableList); cy.get(activeList) .children() .its('length') .then((beforeSize) => { cy.get(firstAvailableNotification).click(); cy.get(activeList) .children() .should('have.length', beforeSize + 1); }); }); it('should deactivate a notification that is yours', () => { cy.login('developer'); cy.visit(`/#/worker/${developerId}/notifications`); cy.waitForElement(activeList); cy.waitForElement(availableList); cy.get(availableList) .children() .its('length') .then((beforeSize) => { cy.get(firstActiveNotification).click(); cy.get(availableList) .children() .should('have.length', beforeSize + 1); }); }); it('should active a notification if you are their boss', () => { cy.login('salesBoss'); cy.visit(`/#/worker/${salesPersonId}/notifications`); cy.waitForElement(activeList); cy.waitForElement(availableList); cy.get(activeList) .children() .its('length') .then((beforeSize) => { cy.get(firstAvailableNotification).click(); cy.get(activeList) .children() .should('have.length', beforeSize + 1); //Rollback cy.get(firstActiveNotification).click(); }); }); });