PocketIC error: Error: Jest: Got error running globalSetup

@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?

1 Like

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

1 Like

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;
1 Like

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



I’m using Node LTS, i.e. v20 works too. Have fun testing, PicJS is awesome.

1 Like