Jest ручной макет не выполняется для функции высшего порядка - PullRequest
1 голос
/ 09 апреля 2020

Я новичок в Jest, я пытаюсь смоделировать мою контекстную функцию HO C для проверки моего компонента. Вот моя структура папок

Структура папок

В основном я пытаюсь смоделировать файл homeContext. js, который используется моим компонентом HomeScreen. Согласно документам, я создал папку __mocks__ в папке контекстов и создал файл homeContext.js

. Содержимое файлов:

/contexts/__mocks__/homeContext.js

const mock = jest.fn().mockImplementation(() => {
console.log('Mocking');
return {
  withHomeContext: jest.fn(() => {}),
 };
});

module.exports = mock;

contexts/homeContext.js

export const withHomeContext = ChildComponent => props => {
console.log('Not Hitting');
  return (
    <HomeContext.Consumer>
      {context => <ChildComponent {...props} homeContext={context} />}
    </HomeContext.Consumer>
  );
};

Вот как я пытаюсь использовать его в моем scenes/home/index.test.js

jest.mock('../../contexts/homeContext');
import React from 'react';
import {mount} from 'enzyme';
import HomeScreen from './index';

describe('<HomeScreen /> renders', () => {
  let wrapper;
  beforeEach(() => {
    wrapper = mount(<HomeScreen />);
    expect(wrapper).toBeDefined();
  });
})

Вот как использует компонент, который я тестирую it

import * as React from 'react';

//Context
import {withHomeContext} from '../../contexts/homeContext';

class HomeScreen extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      relatedItems: [],
    };
  }

  render() {
     //Some render logic
  }
}

export default withHomeContext(HomeScreen);

Пожалуйста, помогите мне, почему мой __mocks__/homeContext.js никогда не попадает, он попадает в реальный файл, который регистрирует консоль ('Not Hitting')

...