salix/e2e/paths/05-ticket-module/12_descriptor.spec.js

196 lines
7.8 KiB
JavaScript
Raw Normal View History

import selectors from '../../helpers/selectors.js';
import createNightmare from '../../helpers/nightmare';
2019-05-24 13:56:19 +00:00
describe('Ticket descriptor path', () => {
const nightmare = createNightmare();
beforeAll(() => {
nightmare
2019-06-21 11:19:51 +00:00
.loginAndModule('salesperson', 'ticket');
});
describe('Delete ticket', () => {
it('should search for an specific ticket', async() => {
const result = await nightmare
2019-06-19 12:40:47 +00:00
.write(selectors.ticketsIndex.searchTicketInput, 18)
.waitToClick(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 summary`, async() => {
const url = await nightmare
2019-06-19 12:40:47 +00:00
.waitForTextInElement(selectors.ticketsIndex.searchResult, 'Cerebro')
.waitToClick(selectors.ticketsIndex.searchResult)
.waitForURL('/summary')
.parsedUrl();
expect(url.hash).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.acceptDeleteButton)
.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
2019-06-19 12:40:47 +00:00
.write(selectors.ticketsIndex.searchTicketInput, 18)
.waitToClick(selectors.ticketsIndex.searchButton)
.waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1)
.wait(selectors.ticketsIndex.searchResultDate)
.waitToGetProperty(selectors.ticketsIndex.searchResultDate, 'innerText');
expect(result).toContain(2000);
});
});
describe('add stowaway', () => {
it('should search for a ticket', async() => {
const result = await nightmare
.clearInput(selectors.ticketsIndex.searchTicketInput)
2019-06-19 12:40:47 +00:00
.write(selectors.ticketsIndex.searchTicketInput, 16)
.waitToClick(selectors.ticketsIndex.searchButton)
.waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1)
.countElement(selectors.ticketsIndex.searchResult);
expect(result).toEqual(1);
});
2019-06-19 07:03:45 +00:00
it(`should now click on the search result to access to the ticket summary`, async() => {
const url = await nightmare
2019-06-19 12:40:47 +00:00
.waitForTextInElement(selectors.ticketsIndex.searchResult, 'Many Places')
.waitToClick(selectors.ticketsIndex.searchResult)
.waitForURL('/summary')
.parsedUrl();
expect(url.hash).toContain('/summary');
});
it('should open the add stowaway dialog', async() => {
const isVisible = await nightmare
.waitToClick(selectors.ticketDescriptor.moreMenu)
.waitToClick(selectors.ticketDescriptor.moreMenuAddStowaway)
2019-06-19 07:03:45 +00:00
.wait(selectors.ticketDescriptor.addStowawayDialogFirstTicket)
.isVisible(selectors.ticketDescriptor.addStowawayDialogFirstTicket);
expect(isVisible).toBeTruthy();
});
2019-06-19 07:03:45 +00:00
it('should add a ticket as stowaway', async() => {
const result = await nightmare
2019-06-19 07:03:45 +00:00
.waitToClick(selectors.ticketDescriptor.addStowawayDialogFirstTicket)
.waitForLastSnackbar();
expect(result).toEqual('Data saved!');
});
it(`should navigate to the added ticket using the descriptors ship button`, async() => {
const url = await nightmare
.waitToClick(selectors.ticketDescriptor.closeStowawayDialog)
2019-06-19 07:03:45 +00:00
.waitToClick(selectors.ticketDescriptor.shipButton)
2019-06-19 12:40:47 +00:00
.waitForURL('#!/ticket/17/summary')
.parsedUrl();
2019-06-19 12:40:47 +00:00
expect(url.hash).toContain('#!/ticket/17/summary');
});
2019-07-01 11:41:38 +00:00
it(`should check the state of the stowaway ticket is embarked`, async() => {
const state = await nightmare
.waitToGetProperty(selectors.ticketDescriptor.stateLabelValue, 'innerText');
expect(state).toEqual('State Embarcando');
});
it(`should navigate to the ship ticket using the descriptors ship button`, async() => {
const url = await nightmare
.waitToClick(selectors.ticketDescriptor.shipButton)
2019-06-19 12:40:47 +00:00
.waitForURL('#!/ticket/16/summary')
.parsedUrl();
2019-06-19 12:40:47 +00:00
expect(url.hash).toContain('#!/ticket/16/summary');
});
it(`should navigate back to the added ticket using the descriptors ship button`, async() => {
const url = await nightmare
.waitToClick(selectors.ticketDescriptor.closeStowawayDialog)
2019-06-19 07:03:45 +00:00
.waitToClick(selectors.ticketDescriptor.shipButton)
2019-06-19 12:40:47 +00:00
.waitForURL('#!/ticket/17/summary')
.parsedUrl();
2019-06-19 12:40:47 +00:00
expect(url.hash).toContain('#!/ticket/17/summary');
});
it('should delete the stowaway', async() => {
const result = await nightmare
.waitToClick(selectors.ticketDescriptor.moreMenu)
.waitToClick(selectors.ticketDescriptor.moreMenuDeleteStowawayButton)
.waitToClick(selectors.ticketDescriptor.acceptDeleteStowawayButton)
.waitForLastSnackbar();
expect(result).toEqual('Data saved!');
});
it(`should confirm the ship buton doesn't exisist any more`, async() => {
const exists = await nightmare
.exists(selectors.ticketDescriptor.shipButton);
expect(exists).toBeFalsy();
});
});
describe('Make invoice', () => {
2019-04-23 11:29:52 +00:00
it('should login as adminBoss role then search for a ticket', async() => {
2019-06-19 12:40:47 +00:00
const invoiceableTicketId = 14;
const url = await nightmare
2019-04-23 11:29:52 +00:00
.loginAndModule('adminBoss', 'ticket')
.accessToSearchResult(invoiceableTicketId)
.waitForURL('/summary')
.parsedUrl();
expect(url.hash).toContain(`ticket/${invoiceableTicketId}/summary`);
});
it(`should make sure the ticket doesn't have an invoiceOutFk yet`, async() => {
const result = await nightmare
.waitToGetProperty(selectors.ticketSummary.invoiceOutRef, 'innerText');
expect(result).toEqual('-');
});
it('should invoice the ticket using the descriptor more menu', async() => {
const result = await nightmare
.waitToClick(selectors.ticketDescriptor.moreMenu)
.waitToClick(selectors.ticketDescriptor.moreMenuMakeInvoice)
.waitToClick(selectors.ticketDescriptor.acceptInvoiceOutButton)
.waitForLastSnackbar();
expect(result).toEqual('Ticket invoiced');
});
it(`should make sure the ticket summary have an invoiceOutFk`, async() => {
const result = await nightmare
.waitForTextInElement(selectors.ticketSummary.invoiceOutRef, 'T4444445')
.waitToGetProperty(selectors.ticketSummary.invoiceOutRef, 'innerText');
expect(result).toEqual('T4444445');
});
});
});