J'ai passé beaucoup de temps à examiner d'autres questions à ce sujet et d'autres projets sur Github, mais aucune des réponses ne semble fonctionner pour moi.
Je charge une bibliothèque tierce dans mon projet et j'obtiens l'erreur lors de l'exécution des tests Jest
export default portalCommunication;
^^^^^^
SyntaxError: Unexpected token export
> 1 | import portalCommunication from 'mathletics-portal-communication-service';
J'ai essayé de mettre à jour ma configuration Jest de plusieurs façons pour la faire transpiler cette bibliothèque, mais j'obtiens toujours la même erreur.
Voici mon fichier jest.config.js actuel:
module.exports = {
moduleNameMapper: {
'\\.(css|scss)$': 'identity-obj-proxy',
'\\.svg$': '<rootDir>/test/mocks/svg-mock.js'
},
setupFiles: ['./test/test-setup.js'],
transformIgnorePatterns: [
'<rootDir>/node_modules/(?!mathletics-portal-communication-service)'
]
};
J'ai également essayé d'ajouter la propriété transform pour exécuter babel-jest par rapport à ce répertoire mathletics-portal-communication-service.
S'il vous plaît aider!
En guise de solution de contournement, j'ai modifié ma configuration pour utiliser l'option moduleNameMapper
afin de charger une classe fictive pour cette bibliothèque. J'aurais préféré utiliser transformIgnorePatterns
à la place alors j'apprécierais quand même des idées.
Nouvelle config:
module.exports = {
moduleNameMapper: {
'\\.(css|scss)$': 'identity-obj-proxy',
'\\.svg$': '<rootDir>/test/mocks/svg-mock.js',
'mathletics-portal-communication-service': '<rootDir>/test/mocks/mathletics-portal-communication-service-mock.js'
},
setupFiles: ['./test/test-setup.js']
};
Les transformIgnorePatterns ne fonctionnaient pas pour moi jusqu'à ce que je change mon .babelrc en babel.config.js, comme ceci:
module.exports = {
"presets": [
"@babel/preset-env"
]
};
comme on le voit sur ce commentaire: https://github.com/facebook/jest/issues/6229#issuecomment-403539460