Все тестовые случаи container.js не выполняются после обновления до ReactJs 16.9.0. Раньше все работало нормально.
container.js:
const mapStateToProps = (state) => {
const {
foo = '',
} = state;
return {
foo,
};
}
const mapDispatchToProps = dispatch => bindActionCreators({
fooFunc,
}, dispatch);
const MyContainer= connect(
mapStateToProps,
mapDispatchToProps,
)(MyComponent);
export default MyContainer;
энзимConfig.js:
const middlewares = [thunk];
const createMockStore = configureMockStore(middlewares);
const store = (initialState = {}) => createMockStore(initialState);
const shallowWithStore = (Component, appStore) => {
const context = {
store: appStore,
};
return shallow(<Provider store={appStore}> <Component /> </Provider>, { context });
};
container.test.js:
global.TEST_UTILS = {
store,
shallowWithStore,
};
const mapStateToPropsArray = [
{ foo: 'Test Foo' },
];
const storeData = (
{ foo: a },
) => ({
foo: a,
});
const initialStore = store(storeData(...mapStateToPropsArray));
const wrapper;
describe('container.test.js', () => {
wrapper= shallowWithStore(
MyComponent, initialStore,
);
describe('Test to check mapStateToProps works correctly', () => {
it('mapStateToProps should work in wrapper', () => {
expect(Object.keys(wrapper.props()))
.toEqual(expect.arrayContaining(mapStateToPropsArray
.map(propsArray => Object.keys(propsArray)[0])));
});
});
});
Этот тестовый пример не проходит. Он говорит:
Ожидается: ArrayContained ["foo"] Получено: ["value", "children"]