Files
pezkuwi-dev/packages/dev-test
Satoshi Qazi Muhammed 0cd4f12cfb dev-test: JSDOM's Event and CustomEvent win over Node's in the browser env
Globals were only set where Node had none, and Node defines Event and
CustomEvent itself. Code running in the browser env therefore built
Node events, which a JSDOM node refuses: react-tooltip's
window.dispatchEvent(new CustomEvent(...)) threw "parameter 1 is not of
type 'Event'". In the browser env these two now come from JSDOM, as they
do under jest-environment-jsdom.
2026-10-10 08:53:49 +04:00
..

@pezkuwi/dev-test

This is a very basic Jest-compatible environment that could be used alongside tests. The need for this came from replacing Jest with node --test without rewriting all assertions.

It provides the following -

  1. Browser window, document, navigator (see usage for browser-specific path)
  2. jest functions, specifically spyOn (not comprehensive, some will error, some witll noop)
  3. expect functions (not comprehensive, caters for specific pezkuwi-js usage)

Usage

On thing to note is that node:test is still rapidly evolving - this includes the APIs and features. As such this requires at least Node 18.14, however 18.15+ is recommended.

The entry points are different based on the environment you would like to operate in. For a browser-like environment,

node --require @pezkuwi/dev-test/browser ...

or for a basic describe/expect/jest-only global environment

node --require @pezkuwi/dev-test/node ...

The ... above indicates any additional Node options, for instance a full command could be -

node --require @pezkuwi/dev-test/node --test something.test.js