2017-08-29 2 views
0

J'essaye de tester le composant React qui a importé SASS avec jest en utilisant la tâche de gulp. Le problème ici est que gulp-jest ne mappe pas les noms des modules (donc il ne peut pas ignorer les fichiers .scss) et le test échoue (throws: "SyntaxError: Unxpected token *"). Je ne sais pas pourquoi il se comporte de cette façon.gulp-jest ne s'applique pas config (moduleNameMapper à être spécifique)

La chose la plus étrange est que cela fonctionne parfaitement via "npm test" et jest-cli, mais pas avec "test de gulp" pour une raison quelconque.

Voici le composant:

import React from 'react'; 
import '../../scss/App.scss'; 

export default class App extends React.Component { 
    render() { 
    return (
     <div className="main"> 
     <h1>Here we go!</h1> 
     </div> 
    ) 
    } 
} 

Voici le test:

import React from 'react'; 
import App from '../src/js/components/App'; 

describe('App',() => { 
    test('should be a React component',() => { 
    let instance = App.prototype instanceof React.Component; 
    expect(instance).toBe(true); 
    }); 
}); 

Voici le gulpfile:

var gulp = require('gulp'); 
var jest = require('gulp-jest').default; 

gulp.task('test',() => { 
    process.env.NODE_ENV = 'test'; 
    return gulp.src('test') 
    .pipe(jest({ 
     config: { 
     "transformIgnorePatterns": [ 
      "<rootDir>/dist/", "<rootDir>/node_modules/" 
     ], 
     "automock": false, 
     "moduleNameMapper": { 
      "\\.scss$": "<rootDir>/jestignore.js" 
     } 
     } 
    })); 
}); 

jestignore.js dans le répertoire racine que les exportations vide objet. J'ai le fichier jest.config.js exportant les configurations exactes pour la commande de test npm (je voulais juste le simplifier pour vous en changeant require() pour se configurer dans le fichier gulp).

Répondre

0

C'est un problème de gulp-jeste connu si vous utilisez jest 21: https://github.com/alansouzati/gulp-jest/issues/41. La rétrogradation au jeste 20 devrait aider.

+0

En fait, j'ai utilisé v20 dans ce projet. J'ai essayé de convertir la config en chaîne, mais cela n'a pas aidé. Espérons que ce problème avec gulp-jest a attiré l'attention avec la version v21 et sera bientôt corrigé. –

+0

Vrai, passer la config comme json string à jest-gulp n'aidera pas. Le problème est que jest-gulp a modifié la config en supposant que c'est un objet qui casse la chaîne de config. – SergeyS