How to expose/access a data store like Redux within a cypress test?

前端 未结 2 860
孤独总比滥情好
孤独总比滥情好 2021-01-05 04:15

The Cypress docs say you can

Expose data stores (like in Redux) so you can programmatically alter the state of your application directly from your te

2条回答
  •  日久生厌
    2021-01-05 05:03

    Based on the answer about Vuex, I did that, which works:

    // after createStore(...)
    if (window.Cypress) {
      window.__store__ = store;
    }
    
    // in cypress tests
    cy.window().should('have.property', '__store__');
    cy.window().its('__store__')
      .then(
        store => store.dispatch({ type: 'UPDATE_CURRENT_PROFILE' })
      );
    

    Don't forget to cy.visit('anyRoute') before doing anything with the store, so that React app is started and redux store is already created when you try to access it.

提交回复
热议问题