Как настроить Jest при использовании response-app-rewired и customize-cra? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь настроить тесты с Jest в create-react-app, который использует функцию override из customize-cra и react-app-rewired. Я установил относительный псевдоним пути, и когда я запускаю тесты, он выдает ошибку cannot find module

вот код ...

// LoginForm.test.js

import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import LoginForm from './LoginForm';


it('submits', () => {
  const onSubmit = jest.fn();
  const { getByText } = render(<LoginForm onSubmit={onSubmit} />);
  fireEvent.click(getByText('Log in'));
  expect(onSubmit).toHaveBeenCalled();
});

// config-overrides.js

const {
  override,
  fixBabelImports,
  addLessLoader,
  addBabelPlugin
} = require("customize-cra");

module.exports = override(
  fixBabelImports("import", [
    {
      libraryName: "antd",
      libraryDirectory: "es"
      // style: true,
    },
    {
      libraryName: "ant-design-pro",
      libraryDirectory: "lib"
      // style: true,
    }
  ]),

  addBabelPlugin([
    "babel-plugin-root-import",
    {
      rootPathSuffix: "./src"
    }
  ]),

  addLessLoader({
    javascriptEnabled: true,
    modifyVars: {
      "@select-item-selected-font-weight": "500",
      "@font-family":
        '"Futura W01", "Futura", -apple -system, BlinkMacSystemFont, "Segoe UI", sans-serif',
      "@pagination-font-family":
        '"Futura W01", "Futura", -apple -system, BlinkMacSystemFont, "Segoe UI", sans-serif',
      "@statistic-font-family":
        '"Futura W01", "Futura", -apple -system, BlinkMacSystemFont, "Segoe UI", sans-serif'
    }
  })
);

Любые указатели очень ценятся, спасибо.

1 Ответ

0 голосов
/ 12 июня 2019

Поскольку тесты не проходят через веб-пакет, псевдонимы путей не будут работать.Однако они проходят через Babel, поэтому вы можете использовать `babel-plugin-module-resolver '.Обычно вы делаете это так:

// .babelrc
{
"plugins": [
  ["module-resolver", {
    "root": ["./src"],
    "alias": {
      "test": "./test",
      "components": "./src/components"
    }
  }]
 ]
}

Но если посмотреть на override выше, похоже, это может сработать:

addBabelPlugin([
  "babel-plugin-root-import",
  {
    rootPathSuffix: "./src"
  },
  "module-resolver",{
      "root": ["./src"],
       "alias": {
          "test": "./test",
          "components": "./src/components"
       }
   }
 ])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...