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