import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; describe('Ticket descriptor path', () => { const nightmare = createNightmare(); beforeAll(() => { nightmare .waitForLogin('employee'); }); it('should click on the Tickets button of the top bar menu', async () => { const url = await nightmare .waitToClick(selectors.globalItems.applicationsMenuButton) .wait(selectors.globalItems.applicationsMenuVisible) .waitToClick(selectors.globalItems.ticketsButton) .wait(selectors.ticketsIndex.searchResult) .parsedUrl(); expect(url.hash).toEqual('#!/ticket/index'); }); it('should count the mount of tickets in the turns section', async () => { const result = await nightmare .waitToClick(selectors.ticketsIndex.moreMenu) .waitToClick(selectors.ticketsIndex.moreMenuTurns) .wait(selectors.ticketsIndex.weeklyTicket) .countElement(selectors.ticketsIndex.weeklyTicket); expect(result).toEqual(5); }); it('should now click on the Tickets button of the top bar menu', async () => { const url = await nightmare .waitToClick(selectors.globalItems.applicationsMenuButton) .wait(selectors.globalItems.applicationsMenuVisible) .waitToClick(selectors.globalItems.ticketsButton) .wait(selectors.ticketsIndex.searchResult) .parsedUrl(); expect(url.hash).toEqual('#!/ticket/index'); }); it('should search for the ticket 11', async () => { const result = await nightmare .wait(selectors.ticketsIndex.searchResult) .type(selectors.ticketsIndex.searchTicketInput, 'id:11') .click(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult); expect(result).toEqual(1); }); it(`should click on the search result to access to the ticket`, async () => { const url = await nightmare .waitToClick(selectors.ticketsIndex.searchResult) .waitForURL('/summary') .url(); expect(url).toContain('/summary'); }); it('should add the ticket to sunday turn using the descriptor more menu', async () => { const result = await nightmare .waitToClick(selectors.ticketDescriptor.moreMenu) .waitToClick(selectors.ticketDescriptor.moreMenuAddToTurn) .waitToClick(selectors.ticketDescriptor.thursdayButton) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it('should again click on the Tickets button of the top bar menu', async () => { const url = await nightmare .waitToClick(selectors.globalItems.applicationsMenuButton) .wait(selectors.globalItems.applicationsMenuVisible) .waitToClick(selectors.globalItems.ticketsButton) .wait(selectors.ticketsIndex.searchResult) .parsedUrl(); expect(url.hash).toEqual('#!/ticket/index'); }); it('should confirm there is one more ticket in the turns section', async () => { const result = await nightmare .waitToClick(selectors.ticketsIndex.moreMenu) .waitToClick(selectors.ticketsIndex.moreMenuTurns) .wait(selectors.ticketsIndex.weeklyTicket) .countElement(selectors.ticketsIndex.weeklyTicket); expect(result).toEqual(6); }); it('should delete the weekly ticket 11', async () => { const result = await nightmare .waitToClick(selectors.ticketsIndex.sixthWeeklyTicketDeleteIcon) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it('should confirm the sixth weekly ticket was deleted', async () => { const result = await nightmare .countElement(selectors.ticketsIndex.weeklyTicket); expect(result).toEqual(5); }); it('should naviate to the ticket index', async () => { const url = await nightmare .waitToClick(selectors.globalItems.applicationsMenuButton) .wait(selectors.globalItems.applicationsMenuVisible) .waitToClick(selectors.globalItems.ticketsButton) .wait(selectors.ticketsIndex.searchResult) .parsedUrl(); expect(url.hash).toEqual('#!/ticket/index'); }); it('should search for a specific ticket', async () => { const result = await nightmare .wait(selectors.ticketsIndex.searchResult) .type(selectors.ticketsIndex.searchTicketInput, 'id:17') .click(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult); expect(result).toEqual(1); }); it(`should click on the search result to access to the ticket Sale`, async () => { const url = await nightmare .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 26') .waitToClick(selectors.ticketsIndex.searchResult) .waitForURL('/summary') .url(); expect(url).toContain('/summary'); }); it('should delete the ticket using the descriptor more menu', async () => { const result = await nightmare .waitToClick(selectors.ticketDescriptor.moreMenu) .waitToClick(selectors.ticketDescriptor.moreMenuDeleteTicket) .waitToClick(selectors.ticketDescriptor.acceptDeleteTicketButton) .waitForLastSnackbar(); expect(result).toEqual('Ticket deleted'); }); it('should have been relocated to the ticket index', async () => { const url = await nightmare .parsedUrl(); expect(url.hash).toEqual('#!/ticket/index'); }); it(`should search for the deleted ticket and check it's date`, async () => { const result = await nightmare .wait(selectors.ticketsIndex.searchResult) .type(selectors.ticketsIndex.searchTicketInput, 'id:17') .click(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .wait(selectors.ticketsIndex.searchResultDate) .getInnerText(selectors.ticketsIndex.searchResultDate); expect(result).toContain(2000); }); });