En cours de test via jest, j'obtiens un jeton "Unexpected" dans les fichiers .jsx inclus
Je suis à l'aide de la plaisanterie et de Babel 6 et essayez d'exécuter un test qui comprend un .jsx fichier. Pour une raison quelconque, le fichier n'est pas ramassé .jsx et semble être traitée comme une pure js, conduisant à l'erreur sur une ligne qui a une Réagir composant.
C'est le test:
var searchPath = '../../../../../app/assets/javascripts/components/navigation/search_icon.js.jsx';
jest.dontMock(searchPath);
import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils'
const SearchIcon = require(searchPath);
describe('components', () => {
describe('SearchIcon', () => {
it('Should dispatch an action to toggle the search bar when clicked', () => {
var icon = TestUtils.renderIntoDocument(
<SearchIcon labelOn="On" labelOff="Off"/>
);
//Smoke test - I can't even get this far :(
expect(true).to.eq(true)
})
})
});
Mon colis.json est ici:
{
"name": "fd-v5-web",
"version": "1.0.0",
"description": "Farmdrop mobile site",
"dependencies": {
"babel-preset-es2015": "^6.0",
"babel-preset-stage-0": "^6.0",
"babel-preset-react": "^6.0",
"babelify": "~>7.2",
"browserify": "~> 10.2.4",
"browserify-incremental": "^3.0.1",
"classnames": "~>2.1",
"immutable": "^3.7.5",
"lodash": "~3.9.3",
"moment": "~2.10.3",
"react": "^0.14.3",
"react-redux": "^4.0.0",
"react-dom": "^0.14.6",
"react-tools": "^0.13.1"
},
"engines": {
"node": "4.0.0",
"npm": "2.1.x"
},
"devDependencies": {
"babel-jest": "*",
"jest-cli": "*",
"react-addons-test-utils": "^0.14.3"
},
"scripts": {
"test": "BABEL_JEST_STAGE=0 jest"
},
"jest": {
"scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
"unmockedModulePathPatterns": [
"<rootDir>/node_modules/react",
"<rootDir>/node_modules/react-dom",
"<rootDir>/node_modules/react-addons-test-utils",
"<rootDir>/node_modules/fbjs"
],
"testFileExtensions": [
"js"
],
"moduleFileExtensions": [
"js",
"jsx",
"json",
"es6"
]
}
}
Et je suis en cours d'exécution sur la ligne de commande avec npm test
Mon .babelrc
ressemble à ceci:
{
"presets": [
"react",
"es2015"
]
}
source d'informationauteur Matt Gibson
Vous devez vous connecter pour publier un commentaire.
Fixe. J'ai eu mon
.babelrc
dans le mauvais dossier. Il doit avoir été dans le répertoire racine. Quand j'ai déménagé là-bas, tout a fonctionné.Un autre endroit où la Plaisanterie peut jeter
Unexpected token
est sur@
lors de l'utilisation dans@connect
(rencontre dans la majorité des tutoriels). Joindre babel-plugin-transformer-décorateurs-héritage dans votre forfait.fichier json, exécuteznpm install
et assurez-vous il y a des lignes"presets": ["es2015", "react", "stage-0"]
et"plugins": ["transform-decorators-legacy"]
dans votre .babelrc fichier.