Изменение объекта окна Cypress в результатах теста в cy.window() дает неопределенное значение в следующем тестеJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Изменение объекта окна Cypress в результатах теста в cy.window() дает неопределенное значение в следующем тесте

Сообщение Anonymous »

У меня есть набор тестов в cypress.js, где перед каждым тестом я удаляю определенную базу данных из indexedDB:

Код: Выделить всё

beforeEach(() => {
cy.window().then(win => win.indexedDB.deleteDatabase('test_db'));
});
В каждом тесте я использую специальную команду, которая заглушает определенные свойства объекта окна:

Код: Выделить всё

Cypress.Commands.add('stubDevice', () => {
Cypress.on('window:before:load', win => {
// @ts-expect-error TS does not recognize userAgentData global variable
const userAgentData = { ...win.navigator.userAgentData };
const mockedUserAgentData = {
...userAgentData,
mobile: true,
}

Object.defineProperty(win.navigator, 'userAgentData', {
value: mockedUserAgentData,
configurable: true,
});
});
});
При запуске набора тестов первый тест работает нормально, однако перед каждым обратным вызовом перед вторым тестом выдается ошибка. Невозможно прочитать свойства неопределенного значения (чтение «indexedDB»). Похоже, что cy.window() возвращает undefined, и кажется, что использование defineProperty в win.navigator является проблемой, потому что, когда я закомментирую эту часть пользовательской команды, обратный вызов beforeEach работает нормально перед каждым тестом. Почему это происходит и как это предотвратить?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -undefined
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»