ts-jest
ts-jest copied to clipboard
[Bug]: ESM + Typescript doesn't work while transpiling testEnvironment
Version
29.1.1
Steps to reproduce
- Clone my repo https://github.com/luiz290788/jest-esm-typescript
- run
NODE_OPTIONS="--experimental-vm-modules" npx jest
- test will fail with message:
FAIL ./my-test.test.ts
● Test suite failed to run
my-environment.ts:4:13 - error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'.
4 console.log(import.meta.url)
Expected behavior
Expect the testEnvironment
to be transpiled as expected using ESM.
Actual behavior
testEnvironment
is transpiled as commonjs
Debug log
I tried to post the logs but github complained saying it was too long.
Additional context
It looks like the transpilation happens normally for the tests but the useESM
is not affecting the testEnvironment
.
Environment
System:
OS: macOS 13.4.1
CPU: (8) arm64 Apple M1
Binaries:
Node: 18.16.1 - ~/.nvm/versions/node/v18.16.1/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 9.8.1 - ~/.nvm/versions/node/v18.16.1/bin/npm
npmPackages:
jest: ^29.6.2 => 29.6.2
Any updates on this?
@luiz290788 @ckrauterlovescoffee this is a bug with Jest. After debugging I found out that Jest never asks ts-jest
to process custom testEnvironment
file in ESM mode.
A workaround is that the test environment file has to be written with .js
extension instead