Проблемы с функцией require.context тестирование с Jest - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь протестировать React with Jest. Компоненты импортируют другие компоненты из файла индекса, который отображает все компоненты, этот файл использует функцию require.context, которая не нравится jest. Я пытался найти решение, высмеивающее требования к файлу индекса, но у меня возникли проблемы с его работой.

TypeError: require.context не является функцией

> 1 | const req = require.context(".", true, /\.\/[^/]+\/[^/]+\/index\.js$/);

Индексный файл:

const req = require.context(".", true, /\.\/[^/]+\/[^/]+\/index\.js$/);

req.keys().forEach(key => {
  const componentName = key.replace(/^.+\/([^/]+)\/index\.js/, "$1");
  module.exports[componentName] = req(key).default;
});

Я импортирую компоненты следующим образом:

import { AuthFormWrapper, Button } from '../../../components';

Опция moduleNameMapper в конфигурации jest:

"moduleNameMapper": {
      "^components$": "<rootDir>/__tests__/setup/__mocks__/componentMock.js"
    },

Файл макета компонента:

import React from 'react'
import PropTypes from 'prop-types'

module.exports = new Proxy({}, {
    get: (target, property) => {
        const Mock = props => <span>{props.children}</span>;

        Mock.displayName = property;
        Mock.propTypes = {
            children: PropTypes.any,
        };

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