Ошибка с библиотекой реагирующего тестирования и созданием приложения реагирования (SyntaxError: Неожиданный идентификатор импортирует ArrayFrom из "./polyfills/array.from.mjs";) - PullRequest
0 голосов
/ 01 мая 2020

Я знаю, что когда у вас есть пустое приложение React, вы настраиваете веб-пакет для использования babel, а затем jest использует конфигурацию babel для компиляции модулей.

Теперь у меня есть приложение, созданное с помощью create-реагировать-приложение , С пакетом. json следующим образом:

{
  "name": "it does not matter",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-redux": "^7.2.0",
    "react-redux-loading": "^1.0.1",
    "react-router-dom": "^5.1.2",
    "react-scripts": "1.1.1",
    "redux": "^4.0.5",
    "redux-thunk": "^2.3.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

С такими вещами я написал простейший тест, который проходит зеленым цветом:

import React from "react";
import ReactDOM from "react-dom";

it("renders LoggedUser without crashing", () => {
  const div = document.createElement("div");
  const name = "::name::";
  const avatarURL = "::avatarURL::";
  const loggedUser = { name, avatarURL };
  ReactDOM.render(<LoggedUser loggedUser={loggedUser} />, div);
});

Теперь я следую за созданием Реагируйте в приложениях, чтобы добавить библиотеку тестирования React: https://create-react-app.dev/docs/running-tests/#option -2-реагировать-библиотека тестирования

Я следую инструкциям, но при запуске теста он жалуется:

import React from "react";
import { render } from "@testing-library/react";
import { LoggedUser } from "../components/LoggedUser";

it("renders LoggedUser without crashing", () => {
  const name = "::name::";
  const avatarURL = "::avatarURL::";
  const loggedUser = { name, avatarURL };
  render(<LoggedUser loggedUser={loggedUser} />);
});
import ArrayFrom from "./polyfills/array.from.mjs";
           ^^^^^^^^^

SyntaxError: Unexpected identifier

В свой пакет я добавил только зависимости:

"devDependencies": {
    "@testing-library/jest-dom": "^5.5.0",
    "@testing-library/react": "^10.0.4"
  }

И, как предложили документы, создал src / setupTests. js file

// react-testing-library renders your components to document.body,
// this adds jest-dom's custom assertions
import '@testing-library/jest-dom/extend-expect';

Я перепробовал много вещей (файл .babelr c с файлом jest.config и без него ...), но мне не удалось пройти тест, при исправлении одной проблемы появилась другая ...

Может быть, sb знаком с этой проблемой и ее возможными решениями.

Ура!

1 Ответ

0 голосов
/ 01 мая 2020

Ну, в конце концов, то, что я пытался сделать, было очень искажено, потому что я не очень хорошо знал делегацию webpack-babel-jest при использовании шаблона create-реагировать-app ...

Так что я сделал еще одно приложение с нуля, и оно сработало, поэтому я просто обновил в своем реальном приложении "react-scripts": "3.x.x", чтобы оно заработало.

Я прошу прощения за все эти хлопоты, в любом случае копание в шаблоне было довольно познавательным .

Все равно спасибо!

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