Jest-тестирование (с использованием babel) неверный импорт токенов - PullRequest
0 голосов
/ 01 декабря 2018

тестирование функции Firebase с Jest, у меня проблемы с импортом .. в моем файле спецификации ..

console.log

 import 'jest';
    ^^^^^^

    SyntaxError: Unexpected token import

Я использую @ babel / coreи @ babel / preset-env и babel-jest

package.json

"devDependencies": {
"@babel/core": "^7.1.6",
"@babel/preset-env": "^7.1.6",
"@types/jest": "^23.3.10",
"babel-jest": "^23.6.0",
"eslint": "^4.12.0",
"eslint-plugin-promise": "^3.6.0",
"firebase-functions-test": "^0.1.5",
"jest": "^23.6.0",
"ts-jest": "^23.10.5"
},
"engines": {
"node": "8"
},
"private": true,
"jest": {
"verbose": true,
"transform": {
  "^.+\\.jsx?$": "babel-jest",
  "^.+\\.tsx?$": "ts-jest"
},
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"moduleFileExtensions": [
  "ts",
  "tsx",
  "js",
  "jsx",
  "json",
  "node"
  ]
}

И я создал файл babel.config.js

babel.config.js

  module.exports = {
    presets: [
      [
        "@babel/preset-env"
      ]
    ]
  };

что мне не хватает?спасибо за отзыв

ОБНОВЛЕНИЕ

Я обновил свою конфигурацию, как указано в Jest Using Babel doc ... (v 7)

console.log

    Cannot find module 'babel-preset-env' from '/Users/yves/Developments/WIP/VUE.JS-cli-3/4-chocha-home-cloudFunctions/chocha/functions'
        - Did you mean "@babel/env"?

package.json

    "devDependencies": {
        "@babel/core": "^7.1.6",
        "@babel/preset-env": "^7.1.6",
        "@types/jest": "^23.3.10",
        "babel-core": "^7.0.0-bridge.0",
        "babel-jest": "^23.6.0",
        "eslint": "^4.12.0",
        "eslint-plugin-promise": "^3.6.0",
        "firebase-functions-test": "^0.1.5",
        "jest": "^23.6.0",
        "regenerator-runtime": "^0.13.1",
        "ts-jest": "^23.10.5"
      },

babel.config.js

    module.exports = {
    presets: [
    ["@babel/env"]
    ]
    };

.babelrc

    {
      "presets": ["env"]
    }

Но я все ещеполучаю ошибку ... не совсем понятно для начинающих, что нужно использовать на самом деле ... слишком много советов в документе ... я использую только JS для функций Firebase, нет React, нет Vue ...

ОБНОВЛЕНИЕ

Я обновил свой .babelrc

    {
      "presets": ["@babel/preset-env"]
    }

Теперь я получаю еще одну ошибку Babel ...

    tests/index.spec.js
      ● Test suite failed to run

        TypeError: programPath.hub.addHelper is not a function

          at wrapInterop (node_modules/@babel/helper-module-transforms/lib/index.js:165:45)
          at PluginPass.exit (node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js:174:70)
          at newFn (../node_modules/@babel/traverse/lib/visitors.js:237:21)
          at NodePath._call (../node_modules/@babel/traverse/lib/path/context.js:65:20)
          at NodePath.call (../node_modules/@babel/traverse/lib/path/context.js:40:17)
          at NodePath.visit (../node_modules/@babel/traverse/lib/path/context.js:109:8)
          at TraversalContext.visitQueue (../node_modules/@babel/traverse/lib/context.js:142:16)
          at TraversalContext.visitSingle (../node_modules/@babel/traverse/lib/context.js:102:19)
          at TraversalContext.visit (../node_modules/@babel/traverse/lib/context.js:182:19)
          at Function.traverse.node (../node_modules/@babel/traverse/lib/index.js:106:17)

1 Ответ

0 голосов
/ 01 декабря 2018

Измените ваш .babelrc на

{
  "presets": ["@babel/preset-env"]
}

ПРИМЕЧАНИЕ: .babelrc и babel.config.js являются избыточными.Если у вас статическая конфигурация, тогда просто .babelrc подойдет.

...