dimanche 3 avril 2016

Testing a component that depends on store from context

I'm having trouble setting up tests for a component that relies on a redux store passed down from context...

My app has a root component that gives its children the redux store as context:

import ApplicationStore from './app-store.js'

class Root extends Component {
    getChildContext() {
        return { store: ApplicationStore }
    }
    render(){...}
}

Root.childContextTypes = {
  store: PropTypes.object,
};

I have a component that depends on the store (passed down from context):

class List extends Component {
  render(){
    const items = this.context.store.getState();

    return items.map((_, i) => (
      <div key={i}>{_.name}</div>
    ));
  }
}

List.contextTypes = {
  store: PropTypes.object,
};

So my question is: How to I "inject" the store object into my component's context? Would I have to unmock(./app-store.js)? Additionally, how can I pre-fill the store with a couple fixtures?

Thanks!

Aucun commentaire:

Enregistrer un commentaire