forked from verdnatura/salix-front
80 lines
2.7 KiB
JavaScript
80 lines
2.7 KiB
JavaScript
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();
|
|
});
|
|
});
|
|
});
|