2017-10-08 5 views
2

Je suis heureux d'utiliser le nœud 8.6 avec l'option expérimentale des modules ES6 (--experimental-modules) activée. Cela me permet d'écrire parfaitement le code simple ES2015 pour le noeud sans avoir besoin de babel. Le problème est que lorsque j'essaye de créer des tests avec jest, il échoue à se plaindre d'une erreur de syntaxe: "Importation de jetons inattendue".babel-jest avec les modules ES6

La configuration .babelrc est la suivante:

{ 
    "env": { 
    "test": { 
     "presets": [ 
     ["env", { 
      "targets": { 
      "node": "8.6" 
      } 
     }] 
     ] 
    } 
    } 
} 

Mon jest.config.js est la suivante:

module.exports = { 
    testMatch: ['/tests/**/*.js', '**/?(*.)test.js'], 
} 

L'erreur jeté:

/app/tests/integration/controller/data-provider/Credentials/CredentialsList.action.test.js:2 
    import { Credentials, AdWordsCredentials } from '../../../../../imports/models/data-provider/Credentials.mjs'; 
    ^^^^^^ 

    SyntaxError: Unexpected token import 

     at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:305:17) 
      at Generator.next (<anonymous>) 
      at Promise (<anonymous>) 

paquets pertinents:

Tous l'aide sera appréciée. Merci de

MISE À JOUR: Je l'ai essayé d'appeler plaisanterie sans babel, avec la commande suivante, sans aucun changement: node --experimental-modules node_modules/.bin/jest

Répondre

0

Jest a une implémentation personnalisée de require pour aider à moqueuse. Malheureusement, cela rend la plaisanterie incompatible avec node --experimental-modules. Babel est probablement la meilleure façon d'utiliser les modules ES6 avec la plaisanterie. Voir https://github.com/facebook/jest/issues/4842