Ошибка при попытке войти с Auth0 в тестах Cypress - PullRequest
0 голосов
/ 24 ноября 2018

Наше приложение доступно только для аутентифицированных пользователей, и мы используем Auth0 для аутентификации.

Мы начали писать Cypress-тесты и пытаемся войти в систему с помощью JavaScript-клиента Auth0 перед каждым тестом.Первый тест всегда проходит без проблем, но все остальные тесты завершаются неудачно со следующей ошибкой:

NetworkError: Не удалось выполнить «send» для «XMLHttpRequest»: Не удалось загрузить «https://ourdomain.eu.auth0.com/co/authenticate':Документ уже отсоединен.

Нужно ли выполнять все вызовы API вручную, используя cy.request(), чтобы предотвратить такие ошибки, или есть ли способ заставить клиент Auth0 работать?

1 Ответ

0 голосов
/ 25 ноября 2018

У меня были похожие проблемы с Auth0, но я не помню, чтобы получала ошибку, которую вы получаете.В блоке before я вхожу в систему. Я вызываю этот метод в блоке before ().Не уверен, что это поможет вам, но оно того стоило.Должен быть лучший способ сделать это, и я попытался вызвать их API, чтобы сделать это, но я так и не смог заставить его работать ... поэтому я взломал это

Cypress.Commands.add('loginAuth0', () => {
    cy.visit('');
    cy.get('#log-in').click();
    cy.get('[type="email"]').type('MYEMAIL@DOMAIN>COM');
    cy.get('[type="password"]').type('MYPASSWORD');
    cy.get('.auth0-label-submit').click();
    cy.url().should('include', '/callback');
})

в блоке beforeEach () Iвызовите этот метод

var accessToken = null; ** this is a global variable at top of file
Cypress.Commands.add('resetLocalStorage', () => {
    if (!accessToken) {
        accessToken = localStorage.getItem('access_token');
    }
    window.localStorage.setItem('access_token', accessToken);

}

в моем файле cypress.json Я отключаю chromeWebSecurity

"chromeWebSecurity": false

В моем файле спецификаций вы увидите что-то вроде

 before(() => {
        cy.loginAuth0();
        cy.wait(2000); 
    })    

    beforeEach(() => {
        cy.resetLocalStorage();
    })
...