import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; describe('Ticket', () => { describe('Create notes path', () => { const nightmare = createNightmare(); beforeAll(() => { return nightmare .waitForLogin('employee'); }); it('should access to the tickets index by clicking the tickets button', done => { return nightmare .click(selectors.moduleAccessView.ticketsSectionButton) .wait(selectors.ticketsIndex.searchResult) .parsedUrl() .then(url => { expect(url.hash).toEqual('#!/ticket/index'); done(); }).catch(done.fail); }); it('should search for the ticket with id 1', done => { return nightmare .wait(selectors.ticketsIndex.searchTicketInput) .type(selectors.ticketsIndex.searchTicketInput, 'id:1') .click(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult) .then(result => { expect(result).toEqual(1); done(); }).catch(done.fail); }); it(`should click on the search result to access to the ticket notes`, done => { return nightmare .waitForTextInElement(selectors.ticketsIndex.searchResult, '1') .waitToClick(selectors.ticketsIndex.searchResult) .waitToClick(selectors.ticketNotes.notesButton) .waitForURL('observation') .url() .then(url => { expect(url).toContain('observation'); done(); }).catch(done.fail); }); it(`should click create a new note and delete a former one`, done => { return nightmare .waitToClick(selectors.ticketNotes.firstNoteRemoveButton) .waitToClick(selectors.ticketNotes.addNoteButton) .waitToClick(selectors.ticketNotes.firstNoteSelect) .waitToClick(selectors.ticketNotes.firstNoteSelectSecondOption) .type(selectors.ticketNotes.firstDescriptionInput, 'description') .click(selectors.ticketNotes.submitNotesButton) .waitForLastSnackbar() .then(result => { expect(result).toEqual('Data saved!'); done(); }).catch(done.fail); }); it(`should confirm the note is the expected one`, done => { return nightmare .click(selectors.ticketPackages.packagesButton) .wait(selectors.ticketPackages.firstPackageSelect) .click(selectors.ticketNotes.notesButton) .waitProperty(selectors.ticketNotes.firstNoteSelect, 'value') .then(result => { expect(result).toEqual('observation one'); return nightmare .getProperty(selectors.ticketNotes.firstDescriptionInput, 'value'); }) .then(result => { expect(result).toEqual('description'); done(); }).catch(done.fail); }); }); });