Open lordi opened 5 years ago
Without the --typescript
flag, tests run smoothly.
~For me its failing with any import on my test file,
Seems like the configuration (of babel-jest)chooses not to transpile them / not to transpile modules~
nevermind:
i was running yarn jest
and not yarn test
My workaround is to change the test command in the package.json
:
"test": "react-scripts test --transformIgnorePatterns 'node_modules/(?!(@carbon/charts|@carbon/charts-react)/).+\\.(js|jsx|ts|tsx)$'",
It's not perfect, but works for us.
I think the user should be able to at least overwrite transformIgnorePatterns
in jest
key.
I am also getting this error for another package (internal pkg and lodash-es) and --transformIgnorePatterns does not work for me.
I just experienced this same issue after adding Reason and Bucklescript to my CRA project:
● Test suite failed to run
Jest encountered an unexpected token
This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".
Here's what you can do:
• To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
• If you need a custom transformation specify a "transform" option in your config.
• If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/en/configuration.html
Details:
/.../node_modules/bs-platform/lib/es6/caml_int32.js:3
import * as Caml_builtin_exceptions from "./caml_builtin_exceptions.js";
^
SyntaxError: Unexpected token *
Since we can’t change transformIgnorePatterns
in the config, I tried @lordi’s suggestion by modifying the test
command. It seems to be working:
"test": "react-scripts test --transformIgnorePatterns 'node_modules/(?!(bs-platform)/).+\\.js$'",
It would be great if CRA could support this out of the box or with an easier config option.
Edit: It seems like the custom test
command may not work on Windows. It fails with this message:
/).+\.js$' was unexpected at this time.
In case someone doesn't want to use the inline command, another solution is adding it as a jest config override in package.json:
{
....,
"jest": {
"transformIgnorePatterns": [
"/!node_modules\\/lodash-es/"
]
}
}
It seems to be supported by CRA, from this line: https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/scripts/utils/createJestConfig.js#L71
Is this a bug report?
Yes.
Certain dependencies (specifically carbon-charts) make the tests fail. The bug ist that the relevant settings for jest can not be overwritten. See https://github.com/carbon-design-system/carbon-charts/issues/126 for the correspondent issue at carbon-charts.
Did you try recovering your dependencies?
Yes
Steps to Reproduce
Expected Behavior
Tests should run fine.
Actual Behavior
Reproducible Demo
See commands above.