Wraper.props () возвращает неожиданное значение - PullRequest
0 голосов
/ 04 октября 2019

Все тестовые случаи 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"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...