Почему Jest не может разрешить модуль, который существует в node_modules? - PullRequest
1 голос
/ 09 марта 2019

У меня есть приложение React, созданное с помощью приложения Create React.У меня есть следующий компонент, который я пытаюсь протестировать с помощью Jest:

import React from 'react';
import { Button } from 'core-ui';

export const Example = () => {
  return (
    <div className="Example">
      <Button>Click me!</Button>
    </div>
  );
};

Button находится внутри пакета core-ui, зависит от пакета core-utils:

import * as React from 'react';
import { Logging } from 'core-utils';

export const Button = (props) => {
  logger.log('Rendering button');
  return (
    <button>
      {props.children}
    </button>
  );
}

Когда я пытаюсь проверить эту кнопку с помощью Jest, я получаю следующую ошибку:

Test suite failed to run

Cannot find module 'core-utils' from 'Button.js'

  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:221:17)
  at Object.<anonymous> (node_modules/core-ui/src/components/Button/Button.tsx:2:1)

Jest не может разрешить модуль core-utils, даже если он расположен прямо под node_modules.Обратите внимание, что когда я запускаю приложение React, у него не возникает проблем при запуске компонента.Так что только Jest не может разрешить модуль core-utils.Любые идеи, где проблема и как ее решить?

Вот тест Jest для справки:

import React from 'react';
import { shallow, ShallowWrapper } from 'enzyme';

import { Example } from './Example';

describe('<Example />', () => {
  let wrapper: ShallowWrapper;
  beforeEach(() => {
    wrapper = shallow(<Example />);
  });

  it('renders', () => {
    expect(wrapper.find('div.Example')).toHaveLength(1);
  });
});
...