diff --git a/test/cypress/integration/ticket/ticketList.spec.js b/test/cypress/integration/ticket/ticketList.spec.js
new file mode 100644
index 000000000..4bb882356
--- /dev/null
+++ b/test/cypress/integration/ticket/ticketList.spec.js
@@ -0,0 +1,54 @@
+///
+describe('Ticket descriptor', () => {
+ const firstRow = 'tbody > :nth-child(1)';
+
+ beforeEach(() => {
+ cy.login('developer');
+ cy.viewport(1920, 1080);
+ cy.visit('/#/ticket/list');
+ });
+
+ const searchResults = (search) => {
+ cy.dataCy('vnSearchBar').find('input').focus();
+ if (search) cy.dataCy('vnSearchBar').find('input').type(search);
+ cy.dataCy('vnSearchBar').find('input').type('{enter}');
+ cy.dataCy('ticketListTable').should('exist');
+ cy.get(firstRow).should('exist');
+ };
+
+ it('should search results', () => {
+ cy.dataCy('ticketListTable').should('not.exist');
+ 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.get(firstRow).find('.q-btn:first').click();
+ cy.get('@windowOpen').should('be.calledWithMatch', /\/ticket\/\d+\/sale/);
+ });
+
+ it('should open ticket summary', () => {
+ searchResults();
+ cy.get(firstRow).find('.q-btn:last').click();
+ cy.dataCy('ticketSummary').should('exist');
+ });
+
+ it('Client list create new client', () => {
+ cy.dataCy('vnTableCreateBtn').should('exist');
+ cy.dataCy('vnTableCreateBtn').click();
+ const data = {
+ Customer: { val: 1, type: 'select' },
+ Warehouse: { val: 'Warehouse One', type: 'select' },
+ Address: { val: 'employee: employeeLane, CENTRAL CITY', type: 'select' },
+ Landed: { val: '01-01-2024', type: 'date' },
+ };
+ cy.fillInForm(data);
+ cy.get('.q-mt-lg > .q-btn--standard').click();
+ cy.checkNotification('Data created');
+ cy.url().should('match', /\/ticket\/\d+\/summary/);
+ });
+});
diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js
index 34aadad1d..91c0b3f05 100755
--- a/test/cypress/support/commands.js
+++ b/test/cypress/support/commands.js
@@ -311,3 +311,7 @@ Cypress.Commands.add('checkValueSelectForm', (id, search) => {
Cypress.Commands.add('searchByLabel', (label, value) => {
cy.get(`[label="${label}"] > .q-field > .q-field__inner`).type(`${value}{enter}`);
});
+
+Cypress.Commands.add('dataCy', (dataTestId, attr = 'data-testid') => {
+ return cy.get(`[${attr}="${dataTestId}"]`);
+});