Мокко не может распознать React в импорте - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь включить Mocha в приложение React / Node, и у меня возникают проблемы с вызовом реакции в моем test.js файле

package.json

{
  "name": "blog_frontend",
  "version": "1.0.0",
  "description": "front end app for react to connect to rails api",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --progress --color --watch --mode=development",
    "test": "./node_modules/mocha/bin/mocha"
  },
  "babel": {
    "presets": [
      "es2015",
      "react"
    ],
    "plugins": "transform-es2015-modules-amd"
  },
  "license": "MIT",
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "babel-preset-stage-1": "^6.24.1",
    "chai": "^4.1.2",
    "css-loader": "^1.0.0",
    "enzyme": "^3.5.0",
    "html-loader": "^0.5.5",
    "mocha": "^5.2.0",
    "sass-loader": "^7.1.0",
    "sinon": "^6.1.5",
    "style-loader": "^0.21.0",
    "webpack": "^4.17.0",
    "webpack-cli": "^3.0.8",
    "webpack-dev-server": "^3.1.4"
  },
  "dependencies": {
    "babel-plugin-transform-decorators-legacy": "^1.3.5",
    "html-webpack-plugin": "^3.2.0",
    "mobx": "^5.0.4",
    "mobx-react": "^5.2.5",
    "node-sass": "^4.9.3",
    "purecss": "^1.0.0",
    "react": "^15.1.0",
    "react-css-modules": "^4.7.7",
    "react-dom": "^15.1.0",
    "react-ellipsis-text": "^1.0.0",
    "react-router": "^3.0.0"
  }
}

test/collection.test.js файл

import React from 'react';
import { mount, shallow } from 'enzyme';
import {expect} from 'chai';

import Collection from '../app/components/Collection.js'

describe('Collection', function() {
  it('should have props for photos', function() {
    const wrapper = shallow(<Collection />); 
    expect(wrapper.props().photos).to.be.defined;
  });
});

error message

error

Я пробовал поискать в Google, но у большинства других постов есть проблемы с ключевым словом import, в то время как у меня есть проблемы с React. Я пытался установить разные пакеты и настроить параметры в .babelrc, но у меня ничего не получилось. Любая информация ценится

1 Ответ

0 голосов
/ 29 августа 2018

ES-модули используются в тестах, они не являются собственными Node-модулями .mjs, и Mocha не настроен на передачу файлов .js с Babel. Будут другие проблемы с проверенным кодом, например с полями классов, которые изначально не поддерживаются Node.

Мокко должно быть настроено для использования с Babel, например как ссылка предполагает:

"test": "./node_modules/mocha/bin/mocha --require babel-core/register"

Также соответствующая конфигурация .babelrc должна быть доступна в корне проекта.

...