Кипарис, как сохранить состояние восстановления между посещениями cy.

#javascript #reactjs #redux #cypress

Вопрос:

В настоящее время я тестирую наше веб-приложение с помощью cypress, и у меня возникла серьезная проблема с очисткой состояния redux между cy.посещениями. Я Использую cypress 8.6.0. Мы используем React с react-redux.

Текущий код в моем тесте:

     const state = { some: thing } // a normal object with key-value pairs

    cy.visit('/B').then(() => {
      cy.window()
        .its('store')
        .then(store => {
          store.dispatch({
            type: 'SET_ORDER',
            payload: state,
         });
       });
    });
 

Проблема с этим иногда заключается в том, что маршрут /B загружается до того, как произойдет событие disptach, и тест завершается сбоем, потому что /B зависит от того, какое состояние находится в моем хранилище redux для работы.

поэтому я подумал, что что-то подобное может сработать:

     const state = { some: thing } // a normal object with key-value pairs
    cy.visit('/A').then(() => {
       cy.window()
        .its('store')
        .then(store => {
          store.dispatch({
            type: 'SET_ORDER',
            payload: state,
         });
       });
    })
    cy.visit('/B'); // redux state gets cleared before going to /B
 

Но это не работает, так как Cypress очищает все состояния между тестами (но также и между cy.посещениями в одном и том же тесте it ()?).

Есть ли в любом случае, что я могу сохранить свое состояние восстановления в течение всего теста? Или, по крайней мере, только при переходе из /А в /Б?