Cypress, работающий в приложении angularjs 1.7, захватывает только первый XHR-запрос - PullRequest
0 голосов
/ 21 января 2019

Мы только начали пытаться внедрить Cypress в наше приложение angularjs 1.7 в качестве нашего тестера E2E, однако у нас возникли проблемы с захватом XHR-запросов Cypress.

Cypress будет захватывать первый XHR-запрос, сделанный первоначальнооткрытие Cypress или первого XHR после cy.reload (), однако дальнейшие запросы XHR не регистрируются, несмотря на явное отключение в инструментах разработчика Chrome, как показано на снимке экрана ниже:

Это показывает результатВначале открываем Cypress и запускаем два теста.Вы видите первый захваченный XHR, но не второй:

https://ibb.co/5kjNDTm

Это показывает, что вы снова запускаете те же тесты после нажатия кнопки перезагрузки теста, и XHR не захватывается для того же тестакак было выполнено ранее:

https://ibb.co/VQCxYhv

Ниже приведен код, запущенный в тестовом файле:

describe('Login page', function(){
    beforeEach(function(){
        cy.server();
        cy.route('**/self_configure?subdomain=syn**', 'fx:self_config_init.json').as('self_config_init');
        cy.route('**/team?username=synthetixtest**', 'fx:team_login.json').as('team_login');

        cy.visit('login');   
        cy.wait('@self_config_init');
    })

    describe('Feedback link', function() {
        it('Checks the feedback link', function() { 
        // Tests link opens in a new tab

            cy.get(".log_feedback_link a")
              .should('have.attr', 'target', '_blank')
              .should('have.attr', 'href', 'https://projectshiva.typeform.com/to/yZBMQo');

        // Tests popup closes

            cy.get(".log_feedback_close").click().wait(50);
            cy.get('.log_feedback_box').should('not.be.visible');
        })
    })

    describe('Logging in', function() {
        it('Initial log in of day', function() {
            cy.get('#syn_login_username').type('synthetixtest');
            cy.get('.log_username_section > .form_frame > .syn_cp_link_button').click().wait(50);
            cy.get('#syn_login_username').should('not.be.visible');

            cy.wait('@team_login').then((team) => {    
                cy.get('.user_log_image > img').should('have.attr', 'src', team['response']['body']['teammates'][0]['avatar']);
            })
        })
    })
})

Имеем ли мы сервер / маршрут / заглушку на местеили нет Cypress, кажется, не захватывает события XHR.Ни одно из этих событий не является запросом на выборку.

Кто-нибудь может подсказать, что здесь происходит, и возможный путь вперед, чтобы Cypress захватил эти события XHR?

Любая помощь очень ценится.

...