@NathanosDev, I am creating my testing setup for a Motoko project with PocketIC
When I run jest -c ./jest.config.ts, from command line I get the following error:
Error: Jest: Got error running globalSetup - /home/ildefons/neutrinite/rechain_icrc3/test/global-setup.ts, reason: Could not find the PocketIC binary. The PocketIC binary could not be found at /home/ildefons/neutrinite/rechain_icrc3/test/node_modules/@hadronous/pic/pocket-ic. Please try installing @hadronous/pic again.
I tried calling manually PocketIC by just calling explicitly /home/ildefons/neutrinite/rechain_icrc3/test/node_modules/@hadronous/pic/pocket-ic
and it successfully started the PockedIC server:
INFO pocket_ic_server: The PocketIC server is listening on port 44225
For more details about my setup: 22.04.2-Ubuntu
Any idea of what I could be doing wrong?
Recent version of PicJS - assuming you are using PicJS - requires a global setup to spin PocketIC in the background.
Nathan describes the step in the documentation: https://hadronous.github.io/pic-js/docs/guides/using-jest
See " The PocketIC server needs to be started before running tests and stopped once they’re finished running. This can be done by creating global-setup.ts and global-teardown.ts files in your project’s root directory:"
Side node: if you are about to setup a full new suites of tests, I would maybe suggest to use Vitest instead of Jest. A bit more modern. If it can be useful, that’s the setting, PicJS + Vitest, in Juno: https://github.com/junobuild/juno
I do have both files in my setup but I have the same exact error

Your jest-config.ts does reference the global-setup.ts and global-teardown.ts?
From Nathan’s doc:
import type { Config } from 'jest';
const config: Config = {
watch: false,
preset: 'ts-jest/presets/js-with-ts',
testEnvironment: 'node',
globalSetup: '<rootDir>/global-setup.ts', // <------------- here
globalTeardown: '<rootDir>/global-teardown.ts', // <------------- and there
testTimeout: 30_000,
};
export default config;
Yes, configuration files are correct but we found the “error”:
I was using an old vesion of node (18.2), so by just updating node to (21.4) now it works
Coolio!
I’m using Node LTS, i.e. v20 works too. Have fun testing, PicJS is awesome.