https://pulumi.com logo
Title
m

mammoth-art-6111

03/16/2022, 3:10 PM
anyone have any difficulty w/ jest output? i've noticed that when i'm using ts-jest, if i import any pulumi resource or create a pulumi component during a test run (with mocks), it garbles the stack trace. when i remove the pulumi modules, the stack trace is fine
seems to also happen with babel-typescript
it appears to actually be related to the call to
setMocks
removing the
setMocks
call causes the errors to appear in their correct place (as long as it's not actually creating pulumi resources, in which case you get the pulumi context error)
i submitted a bug report for this
l

little-cartoon-10569

03/16/2022, 8:14 PM
Is it due to the asynchronous nature of Pulumi? You may find it better to use
pulumi.log()
when you can, since then Pulumi controls when the text is sent to the console.
m

mammoth-art-6111

03/16/2022, 8:25 PM
no, it's not outputting any of the test errors correctly
removing the pulumi import fixes the issue, which is strange
i thought it was the mocks at first, but it's including pulumi into a test file that does it
just
import * as pulumi from '@pulumi/pulumi'
trying ts-mocha now, but i'm having problems with paths with that
l

little-cartoon-10569

03/16/2022, 8:29 PM
I use Mocha without this issue. Not ts-mocha though.
m

mammoth-art-6111

03/16/2022, 8:30 PM
yeah, thats why i switched
i remember you saying you were using it with success, and the examples use mocha. i'd rather use jest, but, if it is what it is 🤷
l

little-cartoon-10569

03/16/2022, 8:31 PM
Do note that (afaik) Mocha doesn't yet support module esnext or any of the new values for module. I use a separate tsconfig.test.json that specifies commonjs for module.
m

mammoth-art-6111

03/16/2022, 8:32 PM
thank you for the heads up there
👍 1
do you use paths a lot in your project? wondering if there's something i'm missing, i just got the example test framework to work with a path definition but my project is still having trouble. calling mocha with
npx mocha -r ts-node/register -r tsconfig-paths/register {test_glob}
l

little-cartoon-10569

03/16/2022, 8:43 PM
I've never got them working in my projects, but the project I'm working on now has them working. Not using registering anything, just using node 14.
And typescript 4.6.2.
I'm a newbie in the node/typescript area. Not clear on how it hangs together. But baseUrl/paths is something I tried to get working a few times, and never could; but it's just working now, on this project that someone else created. It's not really configured much at all, it just works... The only thing different about it compared to mine, is that it uses commonjs everywhere, when all my projects use esnext.
m

mammoth-art-6111

03/16/2022, 8:49 PM
hm
what's the test command?
i would expect you'd have to run
-r ts-node/register
at least
typically speaking you have to transpile to JS before node will run it. ts-node will run typescript without transpilation
l

little-cartoon-10569

03/16/2022, 9:22 PM
In package.json scripts section:
"test": "env TS_NODE_PROJECT=\"tsconfig.test.json\" node --trace-warnings --unhandled-rejections=strict node_modules/mocha/bin/_mocha --spec \"./**/*.spec.ts\"",
Ah, it's in my .mocharc.json:
{
  "parallel": false,
  "extension": [
    "ts"
  ],
  "require": [
    "ts-node/register"
  ]
}
Forgot about that.
m

mammoth-art-6111

03/17/2022, 2:23 PM
thank you!
ill give that a shot
interesting that it calls the bin directly
and that it sets the env var
so i managed to get mocha to run the tests, but still haven't gotten paths to work. as i keep most of my pulumi projects small, i've sort of chalked this up to an acceptable defect
however, at least i get the right stack trace now
and as a side bonus, mocha appears to be much faster
l

little-cartoon-10569

03/21/2022, 8:29 PM
Nice,