Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error on ESM TypeScript project when using ts-node + mocha #1094

Open
lostvicking opened this issue Mar 22, 2022 · 1 comment
Open

Error on ESM TypeScript project when using ts-node + mocha #1094

lostvicking opened this issue Mar 22, 2022 · 1 comment

Comments

@lostvicking
Copy link

Error is thrown when running mocha tests

ESM TypeScript project is being tested with Mocha, when ts-auto-mock's createMock is called an error is thrown

Your environment

  • ts-auto-mock version: 3.5.0
  • typescript version: 4.6.2
  • node version: 14.17.6
  • npm version: 8.4.1
  • mocha version: 9.2.2
  • ts-node version: 10.7.0

Steps to reproduce

Example repo here: https://github.com/lostvicking/esm-ts-auto-mock-example
Run npm test

Expected behavior

Expect createMock to generate a mock of specified type without errors.

Actual behavior

An error is thrown:

Error:
  hey, it looks like ts-auto-mock is not configured correctly! You can find the instructions here https://typescript-tdd.github.io/ts-auto-mock/installation.
  If you need further assistance feel free to drop a message on slack. (link at the bottom of https://typescript-tdd.github.io/ts-auto-mock)

    at r.createMock (/Users/victorneiman/Code/esm-ts-auto-mock-example/node_modules/ts-auto-mock/index.js:1:502)
    at file:///Users/victorneiman/Code/esm-ts-auto-mock-example/tests/test.ts:5:26
    at ModuleJob.run (internal/modules/esm/module_job.js:170:25)
    at async Loader.import (internal/modules/esm/loader.js:178:24)
    at async formattedImport (/Users/victorneiman/Code/esm-ts-auto-mock-example/node_modules/mocha/lib/nodejs/esm-utils.js:7:14)
    at async Object.exports.requireOrImport (/Users/victorneiman/Code/esm-ts-auto-mock-example/node_modules/mocha/lib/nodejs/esm-utils.js:48:32)
    at async Object.exports.loadFilesAsync (/Users/victorneiman/Code/esm-ts-auto-mock-example/node_modules/mocha/lib/nodejs/esm-utils.js:103:20)
    at async singleRun (/Users/victorneiman/Code/esm-ts-auto-mock-example/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async Object.exports.handler (/Users/victorneiman/Code/esm-ts-auto-mock-example/node_modules/mocha/lib/cli/run.js:374:5)
@uittorio
Copy link
Member

uittorio commented Apr 22, 2022

Hello,

I did not forget about this, just being busy with the family, and decided not to spend time on ts-auto-mock.

Anyway, it has been 2 months 🤣

I couldn't fix the problem or find the root cause yet but I've checkout out your repo and I've realised that it was not configured correctly, or at least the transformer was not running at all. Instead of using the example provided by ts-auto-mock I've installed ts-patch to run the transformer.

this unfortunately gave me another error

    at file:///Users/{username}/repos/esm-ts-auto-mock-example/tests/test.ts:5:25
    at ModuleJob.run (node:internal/modules/esm/module_job:197:25)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:337:24)
    at async loadESM (node:internal/process/esm_loader:88:5)
    at async handleMainPromise (node:internal/modules/run_main:61:12)
➜  esm-ts-auto-mock-example git:(master) ✗ 

I think I am almost there, I just need to study esm modules.

I am quite certain that the error is because of something we do in ts-auto-mock about imports that does not get converted correctly for esm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants