-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: add initial test module #42325
Conversation
Why semver-major? |
It adds a new core module ( |
@cjihrig is this ready for a full review or you're looking for general feedback? |
@targos it's ready for a full review (I still need to address Antoine's comments from yesterday). It's semver major because it adds a new core module. It's experimental so that the API can evolve and features can be added/changed. The v18 cutoff date will be coming up soon, so I'd like to be mindful of that as well. The name |
First off, thank you for working on this! It's looking great so far. Just did a cursory pass through the code and just found a few issues. I want to check it out and play with it a bit before signing off tho. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love this. Good work.
would it be possible to get CJS and ESM examples for every code block in the docs? Would prefer if we don't ship anything new without both at this point. |
I can do that for the code blocks that would not be identical between CJS and ESM. |
As @martinheidegger said in #42325 (comment), exposing this only as |
20f1c31
to
ac2b747
Compare
Refs: #42325 PR-URL: #42753 Reviewed-By: Geoffrey Booth <[email protected]> Reviewed-By: Jacob Smith <[email protected]> Reviewed-By: Mestery <[email protected]>
I'm having some difficulty backporting fixes to the module loader to v16.x without 3c4ee52. That commit alone can be cherry-picked relatively easily but it doesn't hurt to ask: what about pulling the entire |
I'm not sure what this team's plans are, but the Loaders team have been discussing mocking (it is currently possible with a loader, but it's not a great experience, and it's fairly difficult) and whether to provide specific tools to support it.
I would guess standard hooks like
This is already available, if I'm not mistaken.
Do you mean like a |
@targos We could try to open a backport PR, run CITGM on it, and assess if it's safe to continue then. I can make the backport PR if you want. |
@aduh95 that would be great, thanks! |
Given that it’s a prefix-only module, i think it would be pretty risky to backport. Could it be pulled in but not exposed, so that core features using it could be backported? |
This commit adds a new 'test' module that exposes an API for creating JavaScript tests. As the tests execute, TAP output is written to standard output. This commit only supports executing individual test files, and does not implement command line functionality for a full test runner. PR-URL: nodejs#42325 Refs: nodejs#40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
This commit makes it possible to add new core modules that can only be require()'ed and imported when the 'node:' scheme is used. The 'test' module is the first such module. These 'node:'-only modules are not included in the list returned by module.builtinModules. PR-URL: nodejs#42325 Refs: nodejs#40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
How does one view console.error output in the node process when using this new test runner? |
@iambumblehead |
Refs: #42325 PR-URL: #42753 Reviewed-By: Geoffrey Booth <[email protected]> Reviewed-By: Jacob Smith <[email protected]> Reviewed-By: Mestery <[email protected]>
This commit adds a new 'test' module that exposes an API for creating JavaScript tests. As the tests execute, TAP output is written to standard output. This commit only supports executing individual test files, and does not implement command line functionality for a full test runner. PR-URL: nodejs#42325 Refs: nodejs#40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
This commit makes it possible to add new core modules that can only be require()'ed and imported when the 'node:' scheme is used. The 'test' module is the first such module. These 'node:'-only modules are not included in the list returned by module.builtinModules. PR-URL: nodejs#42325 Refs: nodejs#40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
This commit adds a new 'test' module that exposes an API for creating JavaScript tests. As the tests execute, TAP output is written to standard output. This commit only supports executing individual test files, and does not implement command line functionality for a full test runner. PR-URL: #42325 Backport-PR-URL: #43904 Refs: #40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
This commit makes it possible to add new core modules that can only be require()'ed and imported when the 'node:' scheme is used. The 'test' module is the first such module. These 'node:'-only modules are not included in the list returned by module.builtinModules. PR-URL: #42325 Backport-PR-URL: #43904 Refs: #40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
Notable changes: crypto: * (SEMVER-MINOR) remove Node.js-specific webcrypto extensions (Filip Skokan) #43310 * (SEMVER-MINOR) add CFRG curves to Web Crypto API (Filip Skokan) #42507 * (SEMVER-MINOR) make authTagLength optional for CC20P1305 (Tobias Nießen) #42427 * (SEMVER-MINOR) align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816 deps: * update undici to 5.4.0 (Node.js GitHub Bot) #43262 * update undici to 5.3.0 (Node.js GitHub Bot) #43197 dns: * (SEMVER-MINOR) export error code constants from `dns/promises` (Feng Yu) #43176 doc: * add F3n67u to collaborators (Feng Yu) #43953 * deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738 * (SEMVER-MINOR) deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714 * add LiviaMedeiros to collaborators (LiviaMedeiros) #43039 * add @kuriyosh to collaborators (Yoshiki Kurihara) #42824 * add RafaelGSS to collaborators (RafaelGSS) #42718 * add @meixg to collaborators (Xuguang Mei) #42576 errors: * (SEMVER-MINOR) add support for cause in aborterror (James M Snell) #41008 esm: * (SEMVER-MINOR) add chaining to loaders (Jacob Smith) #42623 events: * (SEMVER-MINOR) expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885 * (SEMVER-MINOR) add `CustomEvent` (Daeyeon Jeong) #43514 * (SEMVER-MINOR) propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008 fs: * (SEMVER-MINOR) propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008 * (SEMVER-MINOR) make params in writing methods optional (LiviaMedeiros) #42601 * (SEMVER-MINOR) add `read(buffer[, options])` versions (LiviaMedeiros) #42768 http: * (SEMVER-MINOR) add drop request event for http server (theanarkh) #43806 * (SEMVER-MINOR) add diagnostics channel for http client (theanarkh) #43580 * (SEMVER-MINOR) add perf_hooks detail for http request and client (theanarkh) #43361 * (SEMVER-MINOR) add uniqueHeaders option to request and createServer (Paolo Insogna) #41397 http2: * (SEMVER-MINOR) propagate abortsignal reason in new AbortError constructor (James M Snell) #41008 * (SEMVER-MINOR) compat support for array headers (OneNail) #42901 lib: * (SEMVER-MINOR) propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008 * (SEMVER-MINOR) add abortSignal.throwIfAborted() (James M Snell) #40951 * (SEMVER-MINOR) improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714 module: * (SEMVER-MINOR) add isBuiltIn method (hemanth.hm) #43396 module,repl: * (SEMVER-MINOR) support 'node:'-only core modules (Colin Ihrig) #42325 net: * (SEMVER-MINOR) add drop event for net server (theanarkh) #43582 * (SEMVER-MINOR) add ability to reset a tcp socket (pupilTong) #43112 node-api: * (SEMVER-MINOR) emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510 perf_hooks: * (SEMVER-MINOR) add PerformanceResourceTiming (RafaelGSS) #42725 report: * (SEMVER-MINOR) add more heap infos in process report (theanarkh) #43116 src: * (SEMVER-MINOR) add --openssl-legacy-provider option (Daniel Bevenius) #40478 * (SEMVER-MINOR) define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757 src,doc,test: * (SEMVER-MAJOR) add --openssl-shared-config option (Daniel Bevenius) #43124 stream: * (SEMVER-MINOR) use cause options in AbortError constructors (James M Snell) #41008 * (SEMVER-MINOR) add iterator helper find (Nitzan Uziely) #41849 * (SEMVER-MINOR) add writableAborted (Robert Nagy) #40802 test: * (SEMVER-MINOR) add initial test module (Colin Ihrig) #42325 test_runner: * (SEMVER-MINOR) expose `describe` and `it` (Moshe Atlow) #43420 * (SEMVER-MINOR) add initial CLI runner (Colin Ihrig) #42658 * (SEMVER-MINOR) support 'only' tests (Colin Ihrig) #42514 timers: * (SEMVER-MINOR) propagate signal.reason in awaitable timers (James M Snell) #41008 util: * (SEMVER-MINOR) add tokens to parseArgs (John Gee) #43459 * (SEMVER-MINOR) add parseArgs module (Benjamin Coe) #42675 v8: * (SEMVER-MINOR) add v8.startupSnapshot utils (Joyee Cheung) #43329 * (SEMVER-MINOR) export more fields in getHeapStatistics (theanarkh) #42784 worker: * (SEMVER-MINOR) add hasRef() to MessagePort (Darshan Sen) #42849 PR-URL: TODO
Notable changes: Adds `util.parseArgs` helper for higher level command-line argument parsing. Contributed by Benjamin Coe, John Gee, Darcy Clarke, Joe Sepi, Kevin Gibbons, Aaron Casanova, Jessica Nahulan, and Jordan Harband. #42675 Node.js ESM Loader hooks now support multiple custom loaders, and composition is achieved via "chaining": `foo-loader` calls `bar-loader` calls `qux-loader` (a custom loader _must_ now signal a short circuit when intentionally not calling the next). See the ESM docs (https://nodejs.org/dist/latest-v16.x/docs/api/esm.html) for details. Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias. #42623 The `node:test` module, which was initially introduced in Node.js v18.0.0, is now available with all the changes done to it up to Node.js v18.7.0. To better align Node.js' experimental implementation of the Web Crypto API with other runtimes, several changes were made: * Support for CFRG curves was added, with the `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms. * The proprietary `'NODE-DSA'`, `'NODE-DH'`, `'NODE-SCRYPT'`, `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, and `'NODE-X448'` algorithms were removed. * The proprietary `'node.keyObject'` import/export format was removed. Contributed by Filip Skokan. #42507 #43310 Updated Corepack to 0.12.1 - #43965 Updated ICU to 71.1 - #42655 Updated npm to 8.15.0 - #43917 Updated Undici to 5.8.0 - #43886 (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) [#42427](#42427) (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) [#42816](#42816) (SEMVER-MINOR) dns: export error code constants from `dns/promises` (Feng Yu) [#43176](#43176) doc: deprecate ercion to integer in process.exit (Daeyeon Jeong) [#43738](#43738) (SEMVER-MINOR) doc: deprecate diagnostics\_channel object subscribe method (Stephen Belanger) [#42714](#42714) (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) [#41008](#41008) (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) [#43885](#43885) (SEMVER-MINOR) events: add `CustomEvent` (Daeyeon Jeong) [#43514](#43514) (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) [#41008](#41008) (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) [#41008](#41008) (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) [#42601](#42601) (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) [#42768](#42768) (SEMVER-MINOR) http: add drop request event for http server (theanarkh) [#43806](#43806) (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) [#43580](#43580) (SEMVER-MINOR) http: add perf\_hooks detail for http request and client (theanarkh) [#43361](#43361) (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) [#41397](#41397) (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) [#41008](#41008) (SEMVER-MINOR) http2: compat support for array headers (OneNail) [#42901](#42901) (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) [#41008](#41008) (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) [#40951](#40951) (SEMVER-MINOR) lib: improved diagnostics\_channel subscribe/unsubscribe (Stephen Belanger) [#42714](#42714) (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) [#43396](#43396) (SEMVER-MINOR) moduleepl**: support 'node:'-only core modules (Colin Ihrig) [#42325](#42325) (SEMVER-MINOR) net: add drop event for net server (theanarkh) [#43582](#43582) (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) [#43112](#43112) (SEMVER-MINOR) nodepi**: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) [#36510](#36510) (SEMVER-MINOR) perfhooks**: add PerformanceResourceTiming (RafaelGSS) [#42725](#42725) (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) [#43116](#43116) (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) [#40478](#40478) (SEMVER-MINOR) src: define fs.constants.S\_IWUSR & S\_IRUSR for Win (Liviu Ionescu) [#42757](#42757) (SEMVER-MINOR) srcoc,test**: add --openssl-shared-config option (Daniel Bevenius) [#43124](#43124) (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) [#41008](#41008) (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) [#41849](#41849) (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) [#40802](#40802) (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) [#41008](#41008) (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) [#43329](#43329) (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) [#42784](#42784) (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) [#42849](#42849) PR-URL: #44098
Notable changes: Adds `util.parseArgs` helper for higher level command-line argument parsing. Contributed by Benjamin Coe, John Gee, Darcy Clarke, Joe Sepi, Kevin Gibbons, Aaron Casanova, Jessica Nahulan, and Jordan Harband. #42675 Node.js ESM Loader hooks now support multiple custom loaders, and composition is achieved via "chaining": `foo-loader` calls `bar-loader` calls `qux-loader` (a custom loader _must_ now signal a short circuit when intentionally not calling the next). See the ESM docs (https://nodejs.org/dist/latest-v16.x/docs/api/esm.html) for details. Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias. #42623 The `node:test` module, which was initially introduced in Node.js v18.0.0, is now available with all the changes done to it up to Node.js v18.7.0. To better align Node.js' experimental implementation of the Web Crypto API with other runtimes, several changes were made: * Support for CFRG curves was added, with the `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms. * The proprietary `'NODE-DSA'`, `'NODE-DH'`, `'NODE-SCRYPT'`, `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, and `'NODE-X448'` algorithms were removed. * The proprietary `'node.keyObject'` import/export format was removed. Contributed by Filip Skokan. #42507 #43310 Updated Corepack to 0.12.1 - #43965 Updated ICU to 71.1 - #42655 Updated npm to 8.15.0 - #43917 Updated Undici to 5.8.0 - #43886 (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) [#42427](#42427) (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) [#42816](#42816) (SEMVER-MINOR) dns: export error code constants from `dns/promises` (Feng Yu) [#43176](#43176) doc: deprecate ercion to integer in process.exit (Daeyeon Jeong) [#43738](#43738) (SEMVER-MINOR) doc: deprecate diagnostics\_channel object subscribe method (Stephen Belanger) [#42714](#42714) (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) [#41008](#41008) (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) [#43885](#43885) (SEMVER-MINOR) events: add `CustomEvent` (Daeyeon Jeong) [#43514](#43514) (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) [#41008](#41008) (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) [#41008](#41008) (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) [#42601](#42601) (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) [#42768](#42768) (SEMVER-MINOR) http: add drop request event for http server (theanarkh) [#43806](#43806) (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) [#43580](#43580) (SEMVER-MINOR) http: add perf\_hooks detail for http request and client (theanarkh) [#43361](#43361) (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) [#41397](#41397) (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) [#41008](#41008) (SEMVER-MINOR) http2: compat support for array headers (OneNail) [#42901](#42901) (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) [#41008](#41008) (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) [#40951](#40951) (SEMVER-MINOR) lib: improved diagnostics\_channel subscribe/unsubscribe (Stephen Belanger) [#42714](#42714) (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) [#43396](#43396) (SEMVER-MINOR) moduleepl**: support 'node:'-only core modules (Colin Ihrig) [#42325](#42325) (SEMVER-MINOR) net: add drop event for net server (theanarkh) [#43582](#43582) (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) [#43112](#43112) (SEMVER-MINOR) nodepi**: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) [#36510](#36510) (SEMVER-MINOR) perfhooks**: add PerformanceResourceTiming (RafaelGSS) [#42725](#42725) (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) [#43116](#43116) (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) [#40478](#40478) (SEMVER-MINOR) src: define fs.constants.S\_IWUSR & S\_IRUSR for Win (Liviu Ionescu) [#42757](#42757) (SEMVER-MINOR) srcoc,test**: add --openssl-shared-config option (Daniel Bevenius) [#43124](#43124) (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) [#41008](#41008) (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) [#41849](#41849) (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) [#40802](#40802) (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) [#41008](#41008) (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) [#43329](#43329) (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) [#42784](#42784) (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) [#42849](#42849) PR-URL: #44098
Notable changes: Adds `util.parseArgs` helper for higher level command-line argument parsing. Contributed by Benjamin Coe, John Gee, Darcy Clarke, Joe Sepi, Kevin Gibbons, Aaron Casanova, Jessica Nahulan, and Jordan Harband. #42675 Node.js ESM Loader hooks now support multiple custom loaders, and composition is achieved via "chaining": `foo-loader` calls `bar-loader` calls `qux-loader` (a custom loader _must_ now signal a short circuit when intentionally not calling the next). See the ESM docs (https://nodejs.org/dist/latest-v16.x/docs/api/esm.html) for details. Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias. #42623 The `node:test` module, which was initially introduced in Node.js v18.0.0, is now available with all the changes done to it up to Node.js v18.7.0. To better align Node.js' experimental implementation of the Web Crypto API with other runtimes, several changes were made: * Support for CFRG curves was added, with the `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms. * The proprietary `'NODE-DSA'`, `'NODE-DH'`, `'NODE-SCRYPT'`, `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, and `'NODE-X448'` algorithms were removed. * The proprietary `'node.keyObject'` import/export format was removed. Contributed by Filip Skokan. #42507 #43310 Updated Corepack to 0.12.1 - #43965 Updated ICU to 71.1 - #42655 Updated npm to 8.15.0 - #43917 Updated Undici to 5.8.0 - #43886 (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) #42427 (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816 (SEMVER-MINOR) dns: export error code constants from `dns/promises` (Feng Yu) #43176 doc: deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738 (SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714 (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) #41008 (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885 (SEMVER-MINOR) events: add `CustomEvent` (Daeyeon Jeong) #43514 (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008 (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008 (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) #42601 (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768 (SEMVER-MINOR) http: add drop request event for http server (theanarkh) #43806 (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) #43580 (SEMVER-MINOR) http: add perf_hooks detail for http request and client (theanarkh) #43361 (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397 (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) #41008 (SEMVER-MINOR) http2: compat support for array headers (OneNail) #42901 (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008 (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) #40951 (SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714 (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) #43396 (SEMVER-MINOR) module,repl: support 'node:'-only core modules (Colin Ihrig) #42325 (SEMVER-MINOR) net: add drop event for net server (theanarkh) #43582 (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) #43112 (SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510 (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725 (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) #43116 (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) #40478 (SEMVER-MINOR) src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757 (SEMVER-MINOR) src,doc,test: add --openssl-shared-config option (Daniel Bevenius) #43124 (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) #41008 (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) #41849 (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) #40802 (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) #41008 (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) #43329 (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) #42784 (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) #42849 PR-URL: #44098
Notable changes: Adds `util.parseArgs` helper for higher level command-line argument parsing. Contributed by Benjamin Coe, John Gee, Darcy Clarke, Joe Sepi, Kevin Gibbons, Aaron Casanova, Jessica Nahulan, and Jordan Harband. #42675 Node.js ESM Loader hooks now support multiple custom loaders, and composition is achieved via "chaining": `foo-loader` calls `bar-loader` calls `qux-loader` (a custom loader _must_ now signal a short circuit when intentionally not calling the next). See the ESM docs (https://nodejs.org/dist/latest-v16.x/docs/api/esm.html) for details. Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias. #42623 The `node:test` module, which was initially introduced in Node.js v18.0.0, is now available with all the changes done to it up to Node.js v18.7.0. To better align Node.js' experimental implementation of the Web Crypto API with other runtimes, several changes were made: * Support for CFRG curves was added, with the `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms. * The proprietary `'NODE-DSA'`, `'NODE-DH'`, `'NODE-SCRYPT'`, `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, and `'NODE-X448'` algorithms were removed. * The proprietary `'node.keyObject'` import/export format was removed. Contributed by Filip Skokan. #42507 #43310 Updated Corepack to 0.12.1 - #43965 Updated ICU to 71.1 - #42655 Updated npm to 8.15.0 - #43917 Updated Undici to 5.8.0 - #43886 (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) #42427 (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816 (SEMVER-MINOR) dns: export error code constants from `dns/promises` (Feng Yu) #43176 doc: deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738 (SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714 (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) #41008 (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885 (SEMVER-MINOR) events: add `CustomEvent` (Daeyeon Jeong) #43514 (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008 (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008 (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) #42601 (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768 (SEMVER-MINOR) http: add drop request event for http server (theanarkh) #43806 (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) #43580 (SEMVER-MINOR) http: add perf_hooks detail for http request and client (theanarkh) #43361 (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397 (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) #41008 (SEMVER-MINOR) http2: compat support for array headers (OneNail) #42901 (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008 (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) #40951 (SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714 (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) #43396 (SEMVER-MINOR) module,repl: support 'node:'-only core modules (Colin Ihrig) #42325 (SEMVER-MINOR) net: add drop event for net server (theanarkh) #43582 (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) #43112 (SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510 (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725 (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) #43116 (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) #40478 (SEMVER-MINOR) src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757 (SEMVER-MINOR) src,doc,test: add --openssl-shared-config option (Daniel Bevenius) #43124 (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) #41008 (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) #41849 (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) #40802 (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) #41008 (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) #43329 (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) #42784 (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) #42849 PR-URL: #44098
Notable changes: Adds `util.parseArgs` helper for higher level command-line argument parsing. Contributed by Benjamin Coe, John Gee, Darcy Clarke, Joe Sepi, Kevin Gibbons, Aaron Casanova, Jessica Nahulan, and Jordan Harband. nodejs#42675 Node.js ESM Loader hooks now support multiple custom loaders, and composition is achieved via "chaining": `foo-loader` calls `bar-loader` calls `qux-loader` (a custom loader _must_ now signal a short circuit when intentionally not calling the next). See the ESM docs (https://nodejs.org/dist/latest-v16.x/docs/api/esm.html) for details. Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias. nodejs#42623 The `node:test` module, which was initially introduced in Node.js v18.0.0, is now available with all the changes done to it up to Node.js v18.7.0. To better align Node.js' experimental implementation of the Web Crypto API with other runtimes, several changes were made: * Support for CFRG curves was added, with the `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms. * The proprietary `'NODE-DSA'`, `'NODE-DH'`, `'NODE-SCRYPT'`, `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, and `'NODE-X448'` algorithms were removed. * The proprietary `'node.keyObject'` import/export format was removed. Contributed by Filip Skokan. nodejs#42507 nodejs#43310 Updated Corepack to 0.12.1 - nodejs#43965 Updated ICU to 71.1 - nodejs#42655 Updated npm to 8.15.0 - nodejs#43917 Updated Undici to 5.8.0 - nodejs#43886 (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) nodejs#42427 (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) nodejs#42816 (SEMVER-MINOR) dns: export error code constants from `dns/promises` (Feng Yu) nodejs#43176 doc: deprecate coercion to integer in process.exit (Daeyeon Jeong) nodejs#43738 (SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) nodejs#42714 (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) nodejs#41008 (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) nodejs#43885 (SEMVER-MINOR) events: add `CustomEvent` (Daeyeon Jeong) nodejs#43514 (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) nodejs#41008 (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) nodejs#41008 (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) nodejs#42601 (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) nodejs#42768 (SEMVER-MINOR) http: add drop request event for http server (theanarkh) nodejs#43806 (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) nodejs#43580 (SEMVER-MINOR) http: add perf_hooks detail for http request and client (theanarkh) nodejs#43361 (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) nodejs#41397 (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) nodejs#41008 (SEMVER-MINOR) http2: compat support for array headers (OneNail) nodejs#42901 (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) nodejs#41008 (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) nodejs#40951 (SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) nodejs#42714 (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) nodejs#43396 (SEMVER-MINOR) module,repl: support 'node:'-only core modules (Colin Ihrig) nodejs#42325 (SEMVER-MINOR) net: add drop event for net server (theanarkh) nodejs#43582 (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) nodejs#43112 (SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) nodejs#36510 (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS) nodejs#42725 (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) nodejs#43116 (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) nodejs#40478 (SEMVER-MINOR) src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) nodejs#42757 (SEMVER-MINOR) src,doc,test: add --openssl-shared-config option (Daniel Bevenius) nodejs#43124 (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) nodejs#41008 (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) nodejs#41849 (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) nodejs#40802 (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) nodejs#41008 (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) nodejs#43329 (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) nodejs#42784 (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) nodejs#42849 PR-URL: nodejs#44098
Refs: nodejs/node#42325 PR-URL: nodejs/node#42753 Reviewed-By: Geoffrey Booth <[email protected]> Reviewed-By: Jacob Smith <[email protected]> Reviewed-By: Mestery <[email protected]>
This commit adds a new 'test' module that exposes an API for creating JavaScript tests. As the tests execute, TAP output is written to standard output. This commit only supports executing individual test files, and does not implement command line functionality for a full test runner. PR-URL: nodejs/node#42325 Backport-PR-URL: nodejs/node#43904 Refs: nodejs/node#40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
This commit makes it possible to add new core modules that can only be require()'ed and imported when the 'node:' scheme is used. The 'test' module is the first such module. These 'node:'-only modules are not included in the list returned by module.builtinModules. PR-URL: nodejs/node#42325 Backport-PR-URL: nodejs/node#43904 Refs: nodejs/node#40954 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
Notable changes: Adds `util.parseArgs` helper for higher level command-line argument parsing. Contributed by Benjamin Coe, John Gee, Darcy Clarke, Joe Sepi, Kevin Gibbons, Aaron Casanova, Jessica Nahulan, and Jordan Harband. nodejs/node#42675 Node.js ESM Loader hooks now support multiple custom loaders, and composition is achieved via "chaining": `foo-loader` calls `bar-loader` calls `qux-loader` (a custom loader _must_ now signal a short circuit when intentionally not calling the next). See the ESM docs (https://nodejs.org/dist/latest-v16.x/docs/api/esm.html) for details. Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias. nodejs/node#42623 The `node:test` module, which was initially introduced in Node.js v18.0.0, is now available with all the changes done to it up to Node.js v18.7.0. To better align Node.js' experimental implementation of the Web Crypto API with other runtimes, several changes were made: * Support for CFRG curves was added, with the `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms. * The proprietary `'NODE-DSA'`, `'NODE-DH'`, `'NODE-SCRYPT'`, `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, and `'NODE-X448'` algorithms were removed. * The proprietary `'node.keyObject'` import/export format was removed. Contributed by Filip Skokan. nodejs/node#42507 nodejs/node#43310 Updated Corepack to 0.12.1 - nodejs/node#43965 Updated ICU to 71.1 - nodejs/node#42655 Updated npm to 8.15.0 - nodejs/node#43917 Updated Undici to 5.8.0 - nodejs/node#43886 (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) nodejs/node#42427 (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) nodejs/node#42816 (SEMVER-MINOR) dns: export error code constants from `dns/promises` (Feng Yu) nodejs/node#43176 doc: deprecate coercion to integer in process.exit (Daeyeon Jeong) nodejs/node#43738 (SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) nodejs/node#42714 (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) nodejs/node#41008 (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) nodejs/node#43885 (SEMVER-MINOR) events: add `CustomEvent` (Daeyeon Jeong) nodejs/node#43514 (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) nodejs/node#41008 (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) nodejs/node#41008 (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) nodejs/node#42601 (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) nodejs/node#42768 (SEMVER-MINOR) http: add drop request event for http server (theanarkh) nodejs/node#43806 (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) nodejs/node#43580 (SEMVER-MINOR) http: add perf_hooks detail for http request and client (theanarkh) nodejs/node#43361 (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) nodejs/node#41397 (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) nodejs/node#41008 (SEMVER-MINOR) http2: compat support for array headers (OneNail) nodejs/node#42901 (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) nodejs/node#41008 (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) nodejs/node#40951 (SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) nodejs/node#42714 (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) nodejs/node#43396 (SEMVER-MINOR) module,repl: support 'node:'-only core modules (Colin Ihrig) nodejs/node#42325 (SEMVER-MINOR) net: add drop event for net server (theanarkh) nodejs/node#43582 (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) nodejs/node#43112 (SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) nodejs/node#36510 (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS) nodejs/node#42725 (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) nodejs/node#43116 (SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) nodejs/node#40478 (SEMVER-MINOR) src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) nodejs/node#42757 (SEMVER-MINOR) src,doc,test: add --openssl-shared-config option (Daniel Bevenius) nodejs/node#43124 (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) nodejs/node#41008 (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) nodejs/node#41849 (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) nodejs/node#40802 (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) nodejs/node#41008 (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) nodejs/node#43329 (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) nodejs/node#42784 (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) nodejs/node#42849 PR-URL: nodejs/node#44098
This commit adds a new
test
module that exposes an API for creating JavaScript tests. As the tests execute, TAP output is written to standard output. This commit only supports executing individual test files, and does not implement command line functionality for a full test runner (that will come in a future PR).Refs: #40954