89 lines
3.1 KiB
JavaScript
89 lines
3.1 KiB
JavaScript
/// <reference types="cypress" />
|
|
describe('TicketList', () => {
|
|
beforeEach(() => {
|
|
cy.login('developer');
|
|
cy.visit('/#/ticket/list', false);
|
|
});
|
|
|
|
const searchResults = (search) => {
|
|
if (search) cy.typeSearchbar().type(search);
|
|
cy.dataCy('vn-searchbar').find('input').type('{enter}');
|
|
cy.getRow().should('exist');
|
|
};
|
|
|
|
it('should search results', () => {
|
|
cy.get('.q-field__control').should('exist');
|
|
searchResults();
|
|
});
|
|
|
|
it('should open ticket sales', () => {
|
|
searchResults();
|
|
cy.window().then((win) => {
|
|
cy.stub(win, 'open').as('windowOpen');
|
|
});
|
|
cy.getRow().should('be.visible').find('.q-btn:first').click();
|
|
cy.get('@windowOpen').should('be.calledWithMatch', /\/ticket\/\d+\/sale/);
|
|
});
|
|
|
|
it('should open ticket summary', () => {
|
|
searchResults();
|
|
cy.getRow().find('.q-btn:last').click();
|
|
cy.get('.summaryHeader').should('exist');
|
|
cy.get('.summaryBody').should('exist');
|
|
});
|
|
|
|
it('filter client and create ticket', () => {
|
|
cy.intercept('GET', /\/api\/Tickets\/filter/).as('ticketSearchbar');
|
|
searchResults();
|
|
cy.wait('@ticketSearchbar');
|
|
|
|
cy.dataCy('Customer ID_input').clear('1');
|
|
cy.dataCy('Customer ID_input').type('1101{enter}');
|
|
|
|
cy.intercept('GET', /\/api\/Clients\?filter/).as('clientFilter');
|
|
cy.vnTableCreateBtn();
|
|
cy.wait('@clientFilter');
|
|
cy.dataCy('Customer_select').should('have.value', 'Bruce Wayne');
|
|
cy.dataCy('Address_select').click();
|
|
|
|
cy.getOption().click();
|
|
cy.dataCy('Address_select').should('have.value', 'Bruce Wayne');
|
|
});
|
|
it('Client list create new ticket', () => {
|
|
cy.vnTableCreateBtn();
|
|
const data = {
|
|
Customer: { val: 1, type: 'select' },
|
|
Warehouse: { val: 'Warehouse One', type: 'select' },
|
|
Address: { val: 'employee', type: 'select' },
|
|
Landed: { val: '01-01-2024', type: 'date' },
|
|
Agency: { val: 'Other agency', type: 'select' },
|
|
};
|
|
cy.fillInForm(data);
|
|
cy.dataCy('FormModelPopup_save').click();
|
|
cy.checkNotification('Data created');
|
|
cy.url().should('match', /\/ticket\/\d+\/summary/);
|
|
});
|
|
|
|
it('should show the correct problems', () => {
|
|
cy.intercept('GET', '**/api/Tickets/filter*', (req) => {
|
|
req.headers['cache-control'] = 'no-cache';
|
|
req.headers['pragma'] = 'no-cache';
|
|
req.headers['expires'] = '0';
|
|
|
|
req.on('response', (res) => {
|
|
delete res.headers['if-none-match'];
|
|
delete res.headers['if-modified-since'];
|
|
});
|
|
}).as('ticket');
|
|
|
|
cy.get('[data-cy="Warehouse_select"]').type('Warehouse One');
|
|
cy.get('.q-menu .q-item').contains('Warehouse One').click();
|
|
cy.wait('@ticket').then((interception) => {
|
|
const data = interception.response.body[0];
|
|
expect(data.hasComponentLack).to.equal(1);
|
|
});
|
|
cy.get('.icon-components').should('exist');
|
|
cy.get('.icon-unavailable').should('exist');
|
|
});
|
|
});
|