diff --git a/e2e/paths/client-module/12_lock_of_verified_data.spec.js b/e2e/paths/client-module/12_lock_of_verified_data.spec.js index d2816829e..4c25f0620 100644 --- a/e2e/paths/client-module/12_lock_of_verified_data.spec.js +++ b/e2e/paths/client-module/12_lock_of_verified_data.spec.js @@ -1,474 +1,472 @@ import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/helpers'; -describe('Client', () => { - describe('lock verified data path', () => { - const nightmare = createNightmare(); +describe('Client lock verified data path', () => { + const nightmare = createNightmare(); - describe('as salesPerson', () => { - beforeAll(() => { - return nightmare - .waitForLogin('salesPerson'); - }); + describe('as salesPerson', () => { + beforeAll(() => { + return nightmare + .waitForLogin('salesPerson'); + }); - it('should click on the Clients button of the top bar menu', () => { - return nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl() - .then(url => { - expect(url.hash).toEqual('#!/client/index'); - }); - }); - - it('should search for the user Petter Parker', () => { - return nightmare - .wait(selectors.clientsIndex.searchResult) - .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .click(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult) - .then(result => { - expect(result).toEqual(1); - }); - }); - - it(`should click on the search result to access to the client's fiscal data`, () => { - return nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it(`should click on the fiscal data button to start editing`, () => { - return nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it('should confirm verified data button is disabled for salesPerson', () => { - return nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) - .evaluate(selector => { - console.log(document.querySelector(selector)); - return document.querySelector(selector).disabled; - }, selectors.clientFiscalData.verifiedDataCheckbox) - .then(result => { - expect(result).toBe(true); - }); - }); - - it('should edit the social name', () => { - return nightmare - .wait(selectors.clientFiscalData.socialNameInput) - .clearInput(selectors.clientFiscalData.socialNameInput) - .type(selectors.clientFiscalData.socialNameInput, 'salesPerson was here') - .click(selectors.clientFiscalData.saveButton) - .waitForSnackbar() - .then(result => { - expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); - }); - }); - - it('should confirm the social name have been edited', () => { - return nightmare - .waitToClick(selectors.clientBasicData.basicDataButton) - .wait(selectors.clientBasicData.nameInput) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .wait(selectors.clientFiscalData.socialNameInput) - .getInputValue(selectors.clientFiscalData.socialNameInput) - .then(result => { - expect(result).toEqual('salesPerson was here'); - }); + it('should click on the Clients button of the top bar menu', () => { + return nightmare + .waitToClick(selectors.globalItems.applicationsMenuButton) + .wait(selectors.globalItems.applicationsMenuVisible) + .waitToClick(selectors.globalItems.clientsButton) + .wait(selectors.clientsIndex.createClientButton) + .parsedUrl() + .then(url => { + expect(url.hash).toEqual('#!/client/index'); }); }); - describe('as administrative', () => { - beforeAll(() => { - return nightmare - .waitToClick(selectors.globalItems.logOutButton) - .waitForLogin('administrative'); - }); - - it('should navigate to clients index', () => { - return nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl() - .then(url => { - expect(url.hash).toEqual('#!/client/index'); - }); - }); - - it('should search again for the user Petter Parker', () => { - return nightmare - .wait(selectors.clientsIndex.searchResult) - .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .click(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult) - .then(result => { - expect(result).toEqual(1); - }); - }); - - it(`should click on the search result to access to the Petter Parkers fiscal data`, () => { - return nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it(`should click on the fiscal data button`, () => { - return nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it('should confirm verified data button is enabled for administrative', () => { - return nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) - .evaluate(selector => { - return document.querySelector(selector).disabled; - }, selectors.clientFiscalData.verifiedDataCheckbox) - .then(result => { - expect(result).not.toBe(true); - }); - }); - - it('should check the Verified data checkbox', () => { - return nightmare - .waitToClick(selectors.clientFiscalData.verifiedDataCheckboxInput) - .waitToClick(selectors.clientFiscalData.saveButton) - .waitForSnackbar() - .then(result => { - expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); - }); - }); - - it('should confirm Verified data checkbox is checked', () => { - return nightmare - .waitToClick(selectors.clientBasicData.basicDataButton) - .wait(selectors.clientBasicData.nameInput) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) - .evaluate(selector => { - return document.querySelector(selector).checked; - }, selectors.clientFiscalData.verifiedDataCheckboxInput) - .then(value => { - expect(value).toBeTruthy(); - }); - }); - - it('should again edit the social name', () => { - return nightmare - .wait(selectors.clientFiscalData.socialNameInput) - .clearInput(selectors.clientFiscalData.socialNameInput) - .type(selectors.clientFiscalData.socialNameInput, 'administrative was here') - .click(selectors.clientFiscalData.saveButton) - .waitForSnackbar() - .then(result => { - expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); - }); - }); - - it('should confirm the social name have been edited once and for all', () => { - return nightmare - .waitToClick(selectors.clientBasicData.basicDataButton) - .wait(selectors.clientBasicData.nameInput) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .wait(selectors.clientFiscalData.socialNameInput) - .getInputValue(selectors.clientFiscalData.socialNameInput) - .then(result => { - expect(result).toEqual('administrative was here'); - }); + it('should search for the user Petter Parker', () => { + return nightmare + .wait(selectors.clientsIndex.searchResult) + .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') + .click(selectors.clientsIndex.searchButton) + .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) + .countElement(selectors.clientsIndex.searchResult) + .then(result => { + expect(result).toEqual(1); }); }); - describe('as salesPerson second run', () => { - beforeAll(() => { - return nightmare - .waitToClick(selectors.globalItems.logOutButton) - .waitForLogin('salesPerson'); - }); - - it('should again click on the Clients button of the top bar menu', () => { - return nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl() - .then(url => { - expect(url.hash).toEqual('#!/client/index'); - }); - }); - - it('should again search for the user Petter Parker', () => { - return nightmare - .wait(selectors.clientsIndex.searchResult) - .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .click(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult) - .then(result => { - expect(result).toEqual(1); - }); - }); - - it(`should click on the search result to access to the client's fiscal data`, () => { - return nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it(`should click on the fiscal data button to start editing`, () => { - return nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it('should confirm verified data button is disabled once again for salesPerson', () => { - return nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) - .evaluate(selector => { - return document.querySelector(selector).disabled; - }, selectors.clientFiscalData.verifiedDataCheckbox) - .then(result => { - expect(result).toBe(true); - }); - }); - - it('should confirm the form have been disabled for salesPerson', () => { - return nightmare - .wait(selectors.clientFiscalData.socialNameInput) - .evaluate(selector => { - return document.querySelector(selector).disabled; - }, 'vn-textfield[field="$ctrl.client.socialName"] input') - .then(result => { - expect(result).toEqual(true); - }); + it(`should click on the search result to access to the client's fiscal data`, () => { + return nightmare + .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') + .waitToClick(selectors.clientsIndex.searchResult) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); }); }); - describe('as salesAssistant', () => { - beforeAll(() => { - return nightmare - .waitToClick(selectors.globalItems.logOutButton) - .waitForLogin('salesAssistant'); - }); - - it('should navigate to clients index', () => { - return nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl() - .then(url => { - expect(url.hash).toEqual('#!/client/index'); - }); - }); - - it('should search again for the user Petter Parker', () => { - return nightmare - .wait(selectors.clientsIndex.searchResult) - .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .click(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult) - .then(result => { - expect(result).toEqual(1); - }); - }); - - it(`should click on the search result to access to the Petter Parkers fiscal data`, () => { - return nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it(`should click on the fiscal data button`, () => { - return nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); - }); - - it('should confirm verified data button is enabled for salesAssistant', () => { - return nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) - .evaluate(selector => { - return document.querySelector(selector).disabled; - }, selectors.clientFiscalData.verifiedDataCheckbox) - .then(result => { - expect(result).not.toBe(true); - }); - }); - - it('should uncheck the Verified data checkbox', () => { - return nightmare - .waitToClick(selectors.clientFiscalData.verifiedDataCheckboxInput) - .waitToClick(selectors.clientFiscalData.saveButton) - .waitForSnackbar() - .then(result => { - expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); - }); - }); - - it('should confirm Verified data checkbox is unchecked', () => { - return nightmare - .waitToClick(selectors.clientBasicData.basicDataButton) - .wait(selectors.clientBasicData.nameInput) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) - .evaluate(selector => { - return document.querySelector(selector).checked; - }, selectors.clientFiscalData.verifiedDataCheckboxInput) - .then(value => { - expect(value).toBeFalsy(); - }); - }); - - it('should again edit the social name', () => { - return nightmare - .wait(selectors.clientFiscalData.socialNameInput) - .clearInput(selectors.clientFiscalData.socialNameInput) - .type(selectors.clientFiscalData.socialNameInput, 'salesAssistant was here') - .click(selectors.clientFiscalData.saveButton) - .waitForSnackbar() - .then(result => { - expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); - }); - }); - - it('should confirm the social name have been edited once and for all', () => { - return nightmare - .waitToClick(selectors.clientBasicData.basicDataButton) - .wait(selectors.clientBasicData.nameInput) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .wait(selectors.clientFiscalData.socialNameInput) - .getInputValue(selectors.clientFiscalData.socialNameInput) - .then(result => { - expect(result).toEqual('salesAssistant was here'); - }); + it(`should click on the fiscal data button to start editing`, () => { + return nightmare + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); }); }); - describe('as salesPerson third run', () => { - beforeAll(() => { - return nightmare - .waitToClick(selectors.globalItems.logOutButton) - .waitForLogin('salesPerson'); + it('should confirm verified data button is disabled for salesPerson', () => { + return nightmare + .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) + .evaluate(selector => { + console.log(document.querySelector(selector)); + return document.querySelector(selector).disabled; + }, selectors.clientFiscalData.verifiedDataCheckbox) + .then(result => { + expect(result).toBe(true); }); + }); - it('should again click on the Clients button of the top bar menu', () => { - return nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl() - .then(url => { - expect(url.hash).toEqual('#!/client/index'); - }); + it('should edit the social name', () => { + return nightmare + .wait(selectors.clientFiscalData.socialNameInput) + .clearInput(selectors.clientFiscalData.socialNameInput) + .type(selectors.clientFiscalData.socialNameInput, 'salesPerson was here') + .click(selectors.clientFiscalData.saveButton) + .waitForSnackbar() + .then(result => { + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); + }); - it('should once again search for the user Petter Parker', () => { - return nightmare - .wait(selectors.clientsIndex.searchResult) - .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .click(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult) - .then(result => { - expect(result).toEqual(1); - }); + it('should confirm the social name have been edited', () => { + return nightmare + .waitToClick(selectors.clientBasicData.basicDataButton) + .wait(selectors.clientBasicData.nameInput) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .wait(selectors.clientFiscalData.socialNameInput) + .getInputValue(selectors.clientFiscalData.socialNameInput) + .then(result => { + expect(result).toEqual('salesPerson was here'); }); + }); + }); - it(`should click on the search result to access to the client's fiscal data`, () => { - return nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); + describe('as administrative', () => { + beforeAll(() => { + return nightmare + .waitToClick(selectors.globalItems.logOutButton) + .waitForLogin('administrative'); + }); + + it('should navigate to clients index', () => { + return nightmare + .waitToClick(selectors.globalItems.applicationsMenuButton) + .wait(selectors.globalItems.applicationsMenuVisible) + .waitToClick(selectors.globalItems.clientsButton) + .wait(selectors.clientsIndex.createClientButton) + .parsedUrl() + .then(url => { + expect(url.hash).toEqual('#!/client/index'); }); + }); - it(`should click on the fiscal data button to start editing`, () => { - return nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('fiscal-data'); - }); + it('should search again for the user Petter Parker', () => { + return nightmare + .wait(selectors.clientsIndex.searchResult) + .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') + .click(selectors.clientsIndex.searchButton) + .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) + .countElement(selectors.clientsIndex.searchResult) + .then(result => { + expect(result).toEqual(1); }); + }); - it('should confirm verified data button is enabled once again', () => { - return nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) - .evaluate(selector => { - return document.querySelector(selector).disabled; - }, selectors.clientFiscalData.verifiedDataCheckbox) - .then(result => { - expect(result).toBe(true); - }); + it(`should click on the search result to access to the Petter Parkers fiscal data`, () => { + return nightmare + .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') + .waitToClick(selectors.clientsIndex.searchResult) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); }); + }); - it('should confirm the form is enabled for salesPerson', () => { - return nightmare - .wait(selectors.clientFiscalData.socialNameInput) - .evaluate(selector => { - return document.querySelector(selector).disabled; - }, 'vn-textfield[field="$ctrl.client.socialName"] > div') - .then(result => { - expect(result).not.toBe(true); - }); + it(`should click on the fiscal data button`, () => { + return nightmare + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); + }); + }); + + it('should confirm verified data button is enabled for administrative', () => { + return nightmare + .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) + .evaluate(selector => { + return document.querySelector(selector).disabled; + }, selectors.clientFiscalData.verifiedDataCheckbox) + .then(result => { + expect(result).not.toBe(true); + }); + }); + + it('should check the Verified data checkbox', () => { + return nightmare + .waitToClick(selectors.clientFiscalData.verifiedDataCheckboxInput) + .waitToClick(selectors.clientFiscalData.saveButton) + .waitForSnackbar() + .then(result => { + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); + }); + }); + + it('should confirm Verified data checkbox is checked', () => { + return nightmare + .waitToClick(selectors.clientBasicData.basicDataButton) + .wait(selectors.clientBasicData.nameInput) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) + .evaluate(selector => { + return document.querySelector(selector).checked; + }, selectors.clientFiscalData.verifiedDataCheckboxInput) + .then(value => { + expect(value).toBeTruthy(); + }); + }); + + it('should again edit the social name', () => { + return nightmare + .wait(selectors.clientFiscalData.socialNameInput) + .clearInput(selectors.clientFiscalData.socialNameInput) + .type(selectors.clientFiscalData.socialNameInput, 'administrative was here') + .click(selectors.clientFiscalData.saveButton) + .waitForSnackbar() + .then(result => { + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); + }); + }); + + it('should confirm the social name have been edited once and for all', () => { + return nightmare + .waitToClick(selectors.clientBasicData.basicDataButton) + .wait(selectors.clientBasicData.nameInput) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .wait(selectors.clientFiscalData.socialNameInput) + .getInputValue(selectors.clientFiscalData.socialNameInput) + .then(result => { + expect(result).toEqual('administrative was here'); + }); + }); + }); + + describe('as salesPerson second run', () => { + beforeAll(() => { + return nightmare + .waitToClick(selectors.globalItems.logOutButton) + .waitForLogin('salesPerson'); + }); + + it('should again click on the Clients button of the top bar menu', () => { + return nightmare + .waitToClick(selectors.globalItems.applicationsMenuButton) + .wait(selectors.globalItems.applicationsMenuVisible) + .waitToClick(selectors.globalItems.clientsButton) + .wait(selectors.clientsIndex.createClientButton) + .parsedUrl() + .then(url => { + expect(url.hash).toEqual('#!/client/index'); + }); + }); + + it('should again search for the user Petter Parker', () => { + return nightmare + .wait(selectors.clientsIndex.searchResult) + .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') + .click(selectors.clientsIndex.searchButton) + .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) + .countElement(selectors.clientsIndex.searchResult) + .then(result => { + expect(result).toEqual(1); + }); + }); + + it(`should click on the search result to access to the client's fiscal data`, () => { + return nightmare + .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') + .waitToClick(selectors.clientsIndex.searchResult) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); + }); + }); + + it(`should click on the fiscal data button to start editing`, () => { + return nightmare + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); + }); + }); + + it('should confirm verified data button is disabled once again for salesPerson', () => { + return nightmare + .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) + .evaluate(selector => { + return document.querySelector(selector).disabled; + }, selectors.clientFiscalData.verifiedDataCheckbox) + .then(result => { + expect(result).toBe(true); + }); + }); + + it('should confirm the form have been disabled for salesPerson', () => { + return nightmare + .wait(selectors.clientFiscalData.socialNameInput) + .evaluate(selector => { + return document.querySelector(selector).disabled; + }, 'vn-textfield[field="$ctrl.client.socialName"] input') + .then(result => { + expect(result).toEqual(true); + }); + }); + }); + + describe('as salesAssistant', () => { + beforeAll(() => { + return nightmare + .waitToClick(selectors.globalItems.logOutButton) + .waitForLogin('salesAssistant'); + }); + + it('should navigate to clients index', () => { + return nightmare + .waitToClick(selectors.globalItems.applicationsMenuButton) + .wait(selectors.globalItems.applicationsMenuVisible) + .waitToClick(selectors.globalItems.clientsButton) + .wait(selectors.clientsIndex.createClientButton) + .parsedUrl() + .then(url => { + expect(url.hash).toEqual('#!/client/index'); + }); + }); + + it('should search again for the user Petter Parker', () => { + return nightmare + .wait(selectors.clientsIndex.searchResult) + .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') + .click(selectors.clientsIndex.searchButton) + .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) + .countElement(selectors.clientsIndex.searchResult) + .then(result => { + expect(result).toEqual(1); + }); + }); + + it(`should click on the search result to access to the Petter Parkers fiscal data`, () => { + return nightmare + .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') + .waitToClick(selectors.clientsIndex.searchResult) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); + }); + }); + + it(`should click on the fiscal data button`, () => { + return nightmare + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); + }); + }); + + it('should confirm verified data button is enabled for salesAssistant', () => { + return nightmare + .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) + .evaluate(selector => { + return document.querySelector(selector).disabled; + }, selectors.clientFiscalData.verifiedDataCheckbox) + .then(result => { + expect(result).not.toBe(true); + }); + }); + + it('should uncheck the Verified data checkbox', () => { + return nightmare + .waitToClick(selectors.clientFiscalData.verifiedDataCheckboxInput) + .waitToClick(selectors.clientFiscalData.saveButton) + .waitForSnackbar() + .then(result => { + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); + }); + }); + + it('should confirm Verified data checkbox is unchecked', () => { + return nightmare + .waitToClick(selectors.clientBasicData.basicDataButton) + .wait(selectors.clientBasicData.nameInput) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) + .evaluate(selector => { + return document.querySelector(selector).checked; + }, selectors.clientFiscalData.verifiedDataCheckboxInput) + .then(value => { + expect(value).toBeFalsy(); + }); + }); + + it('should again edit the social name', () => { + return nightmare + .wait(selectors.clientFiscalData.socialNameInput) + .clearInput(selectors.clientFiscalData.socialNameInput) + .type(selectors.clientFiscalData.socialNameInput, 'salesAssistant was here') + .click(selectors.clientFiscalData.saveButton) + .waitForSnackbar() + .then(result => { + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); + }); + }); + + it('should confirm the social name have been edited once and for all', () => { + return nightmare + .waitToClick(selectors.clientBasicData.basicDataButton) + .wait(selectors.clientBasicData.nameInput) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .wait(selectors.clientFiscalData.socialNameInput) + .getInputValue(selectors.clientFiscalData.socialNameInput) + .then(result => { + expect(result).toEqual('salesAssistant was here'); + }); + }); + }); + + describe('as salesPerson third run', () => { + beforeAll(() => { + return nightmare + .waitToClick(selectors.globalItems.logOutButton) + .waitForLogin('salesPerson'); + }); + + it('should again click on the Clients button of the top bar menu', () => { + return nightmare + .waitToClick(selectors.globalItems.applicationsMenuButton) + .wait(selectors.globalItems.applicationsMenuVisible) + .waitToClick(selectors.globalItems.clientsButton) + .wait(selectors.clientsIndex.createClientButton) + .parsedUrl() + .then(url => { + expect(url.hash).toEqual('#!/client/index'); + }); + }); + + it('should once again search for the user Petter Parker', () => { + return nightmare + .wait(selectors.clientsIndex.searchResult) + .type(selectors.clientsIndex.searchClientInput, 'Petter Parker') + .click(selectors.clientsIndex.searchButton) + .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) + .countElement(selectors.clientsIndex.searchResult) + .then(result => { + expect(result).toEqual(1); + }); + }); + + it(`should click on the search result to access to the client's fiscal data`, () => { + return nightmare + .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') + .waitToClick(selectors.clientsIndex.searchResult) + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); + }); + }); + + it(`should click on the fiscal data button to start editing`, () => { + return nightmare + .waitToClick(selectors.clientFiscalData.fiscalDataButton) + .waitForURL('fiscal-data') + .parsedUrl() + .then(url => { + expect(url.hash).toContain('fiscal-data'); + }); + }); + + it('should confirm verified data button is enabled once again', () => { + return nightmare + .wait(selectors.clientFiscalData.verifiedDataCheckboxInput) + .evaluate(selector => { + return document.querySelector(selector).disabled; + }, selectors.clientFiscalData.verifiedDataCheckbox) + .then(result => { + expect(result).toBe(true); + }); + }); + + it('should confirm the form is enabled for salesPerson', () => { + return nightmare + .wait(selectors.clientFiscalData.socialNameInput) + .evaluate(selector => { + return document.querySelector(selector).disabled; + }, 'vn-textfield[field="$ctrl.client.socialName"] > div') + .then(result => { + expect(result).not.toBe(true); }); }); });