Реактивное тестирование с Jest и Enzyme (в Symfony) получило «Синтаксическая ошибка: неожиданный импорт токена» - PullRequest
0 голосов
/ 03 июля 2018

Я использую React в Symfony, установил Jest и Enzyme для тестирования компонентов React, но при попытке запустить тесты с yarn test или даже yarn test --no-cache получил следующую ошибку: enter image description here

вот мой файл package.json:

{
  "devDependencies": {
    "@symfony/webpack-encore": "^0.20.1",
    "babel-jest": "^23.2.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "enzyme": "^3.3.0",
    "enzyme-adapter-react-16": "^1.1.1",
    "enzyme-to-json": "^3.3.4",
    "jest": "^23.2.0",
    "jest-enzyme": "^6.0.2",
    "webpack-notifier": "^1.6.0"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "moment": "^2.22.2",
    "prop-types": "^15.6.2",
    "rc-datetime-picker": "^1.6.1",
    "react": "^16.4.1",
    "react-dom": "^16.4.1",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0"
  },
  "scripts": {
    "test": "jest",
    "test:watch": "jest --watch"
  },
  "jest": {
    "transform": {
      "^.+\\.js$": "babel-jest"
    },
    "setupTestFrameworkScriptFile": "./assets/js/__tests__/setup/setupEnzyme.js",
    "testPathIgnorePatterns": [
      "./assets/js/__tests__/setup/"
    ]
  }
}

и мой файл webpack.config.js (бис):

var Encore = require('@symfony/webpack-encore');

Encore
// the project directory where all compiled assets will be stored
    .setOutputPath('public/build/')

    // the public path used by the web server to access the previous directory
    .setPublicPath('/build')

    // will create public/build/app.js and public/build/app.css
    .addEntry('app', './assets/js/index.js')

    // allow legacy applications to use $/jQuery as a global variable
    .autoProvidejQuery()

    // enable source maps during development
    .enableSourceMaps(!Encore.isProduction())

    // empty the outputPath dir before each build
    .cleanupOutputBeforeBuild()

    // show OS notifications when builds finish/fail
    .enableBuildNotifications()

    .enableReactPreset()

    // first, install any presets you want to use (e.g. yarn add babel-preset-es2017)
    // then, modify the default Babel configuration
    .configureBabel(function(babelConfig) {
        // add additional plugins
        babelConfig.plugins.push('transform-object-rest-spread');

        // no plugins are added by default, but you can add some
        // babelConfig.plugins.push('styled-jsx/babel');
    })

// create hashed filenames (e.g. app.abc123.css)
// .enableVersioning()

// allow sass/scss files to be processed
// .enableSassLoader()
;

// export the final configuration
module.exports = Encore.getWebpackConfig();

и наконец мой setupEnzyme.js:

const Enzyme = require('enzyme');
// this is where we reference the adapter package we installed
// earlier
const EnzymeAdapter = require('enzyme-adapter-react-16');
// This sets up the adapter to be used by Enzyme
Enzyme.configure({ adapter: new EnzymeAdapter() });

Я перепробовал все доступные решения, но ни одно из них не помогло мне! есть идеи по этому поводу? (

...