Open MaryamAdnan3 opened 9 months ago
I have a similar issue. It seems to me that for some reason ts-jest instructs the typescript compiler to emit ES3/ES5 code. I cannot pinpoint where this is happening though
This error indicates that Jest tried to process axios
but axios
is not passed (by Jest) to ts-jest
to transform.
Usually, this can be solved by configuring transformIgnoredPattern
option in Jest config file or moduleNameMapper
to tell Jest to resolve CJS version of axios
.
You can also use Jest ESM mode to process ESM axios file.
I think I'm having the same issue https://github.com/karpikpl/typescript-esm-sample
I tried using transformIgnoredPattern
but no luck :(
SyntaxError: Cannot use import statement outside a module
> 1 | import { graphql } from '@octokit/graphql'
this seems to have no effect:
"transformIgnorePatterns": [
"node_modules/(?!(@octokit/graphql|@octokit/request))"
],
I am having a similar issue. I assume I just don't know how to configure the setup correctly. I created a stripped reproduction repo here where I described what I did for debugging so far (so that I don't seem lazy 😉).
In my case I see that for the node_module in question the TS compiler outputs:
{
"outputFiles": [],
"emitSkipped": true,
"diagnostics": []
}
This then causes ts-jest to output the message. This might just be a setup issue, so excuse me if I ask at the wrong place.
transformIgnorePatterns
is configured correctly AFAIK.
Please see the README in the repository for more information.
@thenoseman you can use this workaround
transform: {
'^.+\\.(ts|js)$': ['ts-jest', {
isolatedModules: true,
}]
},
I cannot thank you enough, that drove me nuts for two days! Thanks a lot!
That didn't seem to work for me
FAIL src/utils/html-to-markdown.spec.ts
● Test suite failed to run
Jest encountered an unexpected token
Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.
Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.
By default "node_modules" folder is ignored by transformers.
Here's what you can do:
• If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
• If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
• 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/configuration
For information about custom transformations, see:
https://jestjs.io/docs/code-transformation
Details:
[...]/node_modules/rehype-parse/index.js:2
export {default} from './lib/index.js'
^^^^^^
SyntaxError: Unexpected token 'export'
9 | interface TextNode extends Node {
10 | type: "text";
> 11 | value: string;
| ^
12 | }
Detail:
I have updated a third party library axios version to 1.6.7 . When I ran tests I started to get the following error ` Jest encountered an unexpected token
package.json
jest.config.js `const { jest: lernaAliases } = require('lerna-alias');
module.exports = { preset: 'ts-jest', moduleNameMapper: lernaAliases(), transform: { '^.+\.tsx?$': 'ts-jest', // Add TypeScript transformation '^.+\.jsx?$': 'babel-jest', // Add Babel transformation for ES6 modules }, coverageReporters: [['lcov', { projectRoot: '../../' }]] }; `