Open RedYetiDev opened 1 month ago
Alternative take: it would be great to bring that module up to date. The delta between node:test
on v18 vs. v23 is substantial.
Alternative take: it would be great to bring that module up to date. The delta between
node:test
on v18 vs. v23 is substantial.
That could be done, I just feel that there should be a point where this module reaches the end of its lifespan. IMHO it shouldn't be a polyfill/shim forever.
Maybe it's okay now that the test runner was added recently, but in a few years, maybe this module should eventually be deprecated.
I've looked into upgrading the package, and I'm afraid it's not that simple. The test runner now makes use of internalBinding
(which can fairly easily be polyfilled to produce the same result), and internal/modules/esm/loader
, which is less straightforward to polyfill.
internal/modules/esm/loader, which is less straightforward to polyfill.
In userland code, it might be enough to use dynamic import.
Last time I tried upgrading the test
package I gave up because I ran out of time & energy
Yeah because that package is using a different set of lint rules, there are lots of conflicts to fix every time we try to backport something. At this point, we should probably disable the linter on files maintained on nodejs/node. (or indeed, deprecate the package)
I also tried upgrading, but there are so many things that are extremely complicated to include.
(My progress: 34/35 passing tests) The following features are currently unsupported:
node_modules
within a different directory than the test
module--require
or --import
when process isolation is none and multiple files are to be executedOkay. I've upgraded the package to v23, but with the amount of work it took, and the likelyhood of it being out-of-date again in only a few months, I still think deprecation is the way to go.
hey! Just ran into this with one of my older packages.
I'd strongly urge us to keep this going, as it does allow for the option to decouple your tests from your runtime - having to do test and runtime upgrades at the same time does add burden, and being able to swap over to test
or just always use test
really smooths out that pain point.
Further, generally people update their runtime less frequently than they update their dependencies. Having the separate package enables people to get newer features from the test runner "sooner", which will help adoption of the tooling generally.
I am happy to dedicate time to this where I'd be helpful, but I'm not actually sure if I the technical context for the native bits of the test suite as it exists now.
See https://github.com/nodejs/node-core-test/pull/54 for the upgrade, if you'd like to dedicate time, reviews would be nice :heart:
The
test
npm package serves as a backport of thenode:test
module for Node.js versions prior to v18. However, all these older versions are now end-of-life (EoL). This means the package offers no real advantage for users running supported (non-EoL) versions of Node.js, which they ideally should be using.Given that the package is outdated and no longer necessary, wouldn't it make sense to deprecate it?
CC @nodejs/test_runner