2017-10-19 3 views
-1

J'ai beaucoup de tests qui fonctionnaient correctement avant de passer à React 16, avec les améliorations respectives à l'enzime et à la plaisanterie. J'ai suivi the instructions et a ajouté ces deux fichiers aux configs plaisanterie dans mon package.jsonImports échouant dans React 16 tests avec enzyme et jest

"jest": { 
    "globals": { 
    "rootLevel": "/portal" 
    }, 
    "moduleNameMapper": { 
    "components": "<rootDir>/../components", 
    "\\.(jpg|jpeg|png|gif|svg|woff|woff2)$": "<rootDir>/_tests/__mocks/fileMock.js" 
    }, 
    "setupFiles": [ 
    "<rootDir>/_tests/__config/shim.js", 
    "<rootDir>/_tests/__config/enzyme-setup.js" 
    ] 
} 

Mais je ne suis toujours pas voir mes tests fonctionne correctement. La plupart de mes essais une erreur identique jeté à ceci:

Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. 

Check the render method of `WrapperComponent`. 
at invariant (node_modules/fbjs/lib/invariant.js:42:15) 
... 
at mount (node_modules/enzyme/build/mount.js:19:10) 
at Object.<anonymous> (_tests/MyTest.test.js:39:35) 

Tout ce qui a été déclenché cette ligne:

const wrapper = mount(<MyComponent {...props} />) 

Pour autant que je sache, mount fonctionne toujours dans la même enzyme 3. Tous mes tests qui impliquent de rendre quelque chose échouent. Qu'est-ce que je rate?

Répondre

0

La question était qu'un $ ne manquait au nom du module mappeur:

"components$": "<rootDir>/../components", 
+0

Je ne vois aucune référence aux « composants » dans l'URL que vous avez publié. Sinon, ce fichier devrait être généré automatiquement avec create-react-app. – HoldOffHunger