import * as moment from 'moment'; describe('Онлайн табло: Вылет', () => { const departureCity = { name: 'Анапа', code: 'AAQ', latitude: 44.8857008, longitude: 37.3199191, }; const today = moment().format('DD.MM.YYYY'); const expectedUrlDateTime = `${moment().format('DDMMYYYY')}-0000-2400`; beforeEach(() => { cy.intercept('GET', '**api/flights/v1.1/ru/board**').as('getFlights'); cy.forbidGeolocation(); cy.visit('/'); cy.getByTestId('departure-filter').click(); }); const assertSearchResults = () => { cy.getByTestId('loader').should('be.visible'); cy.wait('@getFlights').then(() => { cy.getByTestId('board-search-result').should('be.visible'); cy.getByTestId('flight-result').should('have.length.at.least', 1); }); }; it(`Должен искать рейсы (${departureCity.name} - ручной ввод), открывать корректный URL и детали рейса`, () => { cy.getByTestId('departure-city-input').type(`${departureCity.name}`); cy.getByTestId('calendar-input').type(today).type('{enter}'); cy.getByTestId('city-code').contains(`${departureCity.code}`).should('be.visible'); cy.getByTestId('departure-search-button').click(); cy.url().should('include', `ru-ru/onlineboard/departure/${departureCity.code}/${expectedUrlDateTime}`); assertSearchResults(); cy.getByTestId('flight-result') .first() .getByTestId('flight-carrier-number') .should('be.visible') .getByTestId('flight-company-logo') .should('be.visible'); cy.getByTestId('flight-details-button').click(); cy.getByTestId('flight-details-number').should('be.visible'); cy.getByTestId('flight-company-logo').should('be.visible'); }); it(`Должен искать рейсы (${departureCity.name} - выбор из списка)`, () => { cy.getByTestId('calendar-input').type(today).type('{enter}'); cy.getByTestId('autocomplete-popup-button').click(); cy.getByTestId(`city-name-cell-${departureCity.name}`).click(); cy.getByTestId('city-code').contains(`${departureCity.code}`).should('be.visible'); cy.getByTestId('departure-search-button').click(); assertSearchResults(); }); });