/// describe('TicketSale', () => { describe('Free ticket #31', () => { beforeEach(() => { cy.login('developer'); cy.viewport(1920, 1080); cy.visit('/#/ticket/31/sale'); }); const firstRow = 'tbody > :nth-child(1)'; const selectFirstRow = () => { cy.waitForElement(firstRow); cy.get(firstRow).find('.q-checkbox__inner').click(); }; it('it should add item to basket', () => { cy.window().then((win) => { cy.stub(win, 'open').as('windowOpen'); }); cy.dataCy('ticketSaleAddToBasketBtn').should('exist'); cy.dataCy('ticketSaleAddToBasketBtn').click(); cy.get('@windowOpen').should('be.calledWithMatch', /\/order\/\d+\/catalog/); }); it('should send SMS', () => { selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.waitForElement('[data-cy="sendShortageSMSItem"]'); cy.dataCy('sendShortageSMSItem').should('exist'); cy.dataCy('sendShortageSMSItem').click(); cy.dataCy('vnSmsDialog').should('exist'); cy.dataCy('sendSmsBtn').click(); cy.checkNotification('SMS sent'); }); it('should recalculate price when "Recalculate price" is clicked', () => { cy.intercept('POST', '**/recalculatePrice').as('recalculatePrice'); selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.waitForElement('[data-cy="recalculatePriceItem"]'); cy.dataCy('recalculatePriceItem').should('exist'); cy.dataCy('recalculatePriceItem').click(); cy.wait('@recalculatePrice').its('response.statusCode').should('eq', 200); cy.checkNotification('Data saved'); }); it('should update discount when "Update discount" is clicked', () => { selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.waitForElement('[data-cy="updateDiscountItem"]'); cy.dataCy('updateDiscountItem').should('exist'); cy.dataCy('updateDiscountItem').click(); cy.waitForElement('[data-cy="ticketSaleDiscountInput"]'); cy.dataCy('ticketSaleDiscountInput').find('input').focus(); cy.dataCy('ticketSaleDiscountInput').find('input').type('10'); cy.dataCy('saveManaBtn').click(); cy.waitForElement('.q-notification__message'); cy.checkNotification('Data saved'); }); it('adds claim', () => { selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.dataCy('createClaimItem').click(); cy.dataCy('VnConfirm_confirm').click(); cy.url().should('contain', 'claim/'); // Delete created claim to avoid cluttering the database cy.dataCy('descriptor-more-opts').click(); cy.dataCy('deleteClaim').click(); cy.dataCy('VnConfirm_confirm').click(); cy.checkNotification('Data deleted'); }); it('marks row as reserved', () => { selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.waitForElement('[data-cy="markAsReservedItem"]'); cy.dataCy('markAsReservedItem').click(); cy.dataCy('ticketSaleReservedIcon').should('exist'); }); it('unmarks row as reserved', () => { selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.waitForElement('[data-cy="unmarkAsReservedItem"]'); cy.dataCy('unmarkAsReservedItem').click(); cy.dataCy('ticketSaleReservedIcon').should('not.exist'); }); it('refunds row with warehouse', () => { selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.dataCy('ticketSaleRefundItem').click(); cy.dataCy('ticketSaleRefundWithWarehouse').click(); cy.checkNotification('The following refund ticket have been created'); }); it('refunds row without warehouse', () => { selectFirstRow(); cy.dataCy('ticketSaleMoreActionsDropdown').click(); cy.dataCy('ticketSaleRefundItem').click(); cy.dataCy('ticketSaleRefundWithoutWarehouse').click(); cy.checkNotification('The following refund ticket have been created'); }); it('transfer sale to a new ticket', () => { cy.visit('/#/ticket/32/sale'); cy.get('.q-item > .q-item__label').should('have.text', ' #32'); selectFirstRow(); cy.dataCy('ticketSaleTransferBtn').click(); cy.dataCy('ticketTransferPopup').should('exist'); cy.dataCy('ticketTransferNewTicketBtn').click(); //check the new ticket has been created succesfully cy.get('.q-item > .q-item__label').should('not.have.text', ' #32'); }); it('should redirect to ticket logs', () => { cy.get(firstRow).find('.q-btn:last').click(); cy.url().should('match', /\/ticket\/31\/log/); }); }); describe('Ticket prepared #23', () => { beforeEach(() => { cy.login('developer'); cy.viewport(1920, 1080); cy.visit('/#/ticket/23/sale'); }); const firstRow = 'tbody > :nth-child(1)'; const selectFirstRow = () => { cy.waitForElement(firstRow); cy.get(firstRow).find('.q-checkbox__inner').click(); }; it('update price', () => { const price = Number((Math.random() * 99 + 1).toFixed(2)); cy.waitForElement(firstRow); cy.get(':nth-child(10) > .q-btn').click(); cy.waitForElement('[data-cy="ticketEditManaProxy"]'); cy.dataCy('ticketEditManaProxy').should('exist'); cy.waitForElement('[data-cy="Price_input"]'); cy.dataCy('Price_input').clear(); cy.dataCy('Price_input').type(price); cy.dataCy('saveManaBtn').click(); handleVnConfirm(); cy.get(':nth-child(10) > .q-btn > .q-btn__content').should( 'have.text', `€${price}`, ); }); it('update dicount', () => { const discount = Math.floor(Math.random() * 100) + 1; selectFirstRow(); cy.get(':nth-child(11) > .q-btn').click(); cy.waitForElement('[data-cy="ticketEditManaProxy"]'); cy.dataCy('ticketEditManaProxy').should('exist'); cy.waitForElement('[data-cy="Disc_input"]'); cy.dataCy('Disc_input').clear(); cy.dataCy('Disc_input').type(discount); cy.dataCy('saveManaBtn').click(); handleVnConfirm(); cy.get(':nth-child(11) > .q-btn > .q-btn__content').should( 'have.text', `${discount}.00%`, ); }); it('change concept', () => { const quantity = Math.floor(Math.random() * 100) + 1; cy.waitForElement(firstRow); cy.get(':nth-child(8) > .row').click(); cy.get( '.q-menu > [data-v-ca3f07a4=""] > .q-field > .q-field__inner > .q-field__control > .q-field__control-container > [data-cy="undefined_input"]', ) .type(quantity) .type('{enter}'); handleVnConfirm(); cy.get(':nth-child(8) >.row').should('contain.text', `${quantity}`); }); it('changequantity ', () => { const quantity = Math.floor(Math.random() * 100) + 1; cy.waitForElement(firstRow); cy.dataCy('ticketSaleQuantityInput').clear(); cy.dataCy('ticketSaleQuantityInput').type(quantity).trigger('tab'); cy.get('.q-page > :nth-child(6)').click(); handleVnConfirm(); cy.get('[data-cy="ticketSaleQuantityInput"]') .find('[data-cy="undefined_input"]') .should('have.value', `${quantity}`); }); }); }); function handleVnConfirm() { cy.get('[data-cy="VnConfirm_confirm"] > .q-btn__content > .block').click(); cy.waitForElement('.q-notification__message'); cy.get('.q-notification__message').should('be.visible'); cy.checkNotification('Data saved'); }