node/test/module-hooks
Joyee Cheung 5065a0acb3
module: do not invoke resolve hooks twice for imported cjs
Previously the resolve hook can be invoked twice from the
synthetic module evaluation step of imported CJS in the extra
module._load() call that's invoked on the resolved full path.
Add an option to avoid it, since the resolution and loading
has already been done before.

PR-URL: https://github.com/nodejs/node/pull/61529
Backport-PR-URL: https://github.com/nodejs/node/pull/62029
Fixes: https://github.com/nodejs/node/issues/57125
Refs: https://github.com/nodejs/node/issues/55808
Refs: https://github.com/nodejs/node/issues/56241
Reviewed-By: Jacob Smith <jacob@frende.me>
Fixes: https://github.com/nodejs/node/issues/61801
2026-04-27 18:03:26 +02:00
..
module-hooks.status
test-module-hooks-builtin-require.js module: convert schema-only core module on convertCJSFilenameToURL 2025-07-24 20:08:27 +02:00
test-module-hooks-create-require-with-url.mjs module: preserve URL in the parent created by createRequire() 2026-02-17 15:14:21 +01:00
test-module-hooks-custom-conditions-cjs.js module: fix conditions override in synchronous resolve hooks 2025-08-20 17:11:45 +02:00
test-module-hooks-custom-conditions-special-values.js module: fix conditions override in synchronous resolve hooks 2025-08-20 17:11:45 +02:00
test-module-hooks-custom-conditions.mjs module: fix conditions override in synchronous resolve hooks 2025-08-20 17:11:45 +02:00
test-module-hooks-import-wasm.mjs tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-load-async-and-sync.js module: handle null source from async loader hooks in sync hooks 2026-04-27 18:03:19 +02:00
test-module-hooks-load-buffers.js tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-load-builtin-import.mjs
test-module-hooks-load-builtin-override-commonjs.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-load-builtin-override-json.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-load-builtin-override-module.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-load-builtin-require.js module: convert schema-only core module on convertCJSFilenameToURL 2025-07-24 20:08:27 +02:00
test-module-hooks-load-chained.js tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-load-context-merged-esm.mjs module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-load-context-merged.js module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-load-context-optional-esm.mjs module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-load-context-optional.js module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-load-detection.js tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-load-esm-mock.js tools,test: enforce best practices to detect never settling promises 2025-08-04 13:29:04 +02:00
test-module-hooks-load-esm.js tools,test: enforce best practices to detect never settling promises 2025-08-04 13:29:04 +02:00
test-module-hooks-load-import-cjs.js module: do not invoke resolve hooks twice for imported cjs 2026-04-27 18:03:26 +02:00
test-module-hooks-load-invalid.js
test-module-hooks-load-mock.js
test-module-hooks-load-short-circuit-required-middle.js
test-module-hooks-load-short-circuit-required-start.js
test-module-hooks-load-short-circuit.js
test-module-hooks-load-url-change-import.mjs tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-load-url-change-require.js tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-preload.js
test-module-hooks-require-wasm.js tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-resolve-builtin-builtin-import.mjs
test-module-hooks-resolve-builtin-builtin-require.js tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-resolve-builtin-on-disk-import.mjs
test-module-hooks-resolve-builtin-on-disk-require-with-prefix.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-resolve-builtin-on-disk-require.js tools: add lint rule to ensure assertions are reached 2026-02-19 18:46:23 +01:00
test-module-hooks-resolve-context-merged-esm.mjs module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-resolve-context-merged.js module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-resolve-context-optional-esm.mjs module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-resolve-context-optional.js module: allow omitting context in synchronous next hooks 2025-04-17 10:50:58 -03:00
test-module-hooks-resolve-import-cjs.js module: do not invoke resolve hooks twice for imported cjs 2026-04-27 18:03:26 +02:00
test-module-hooks-resolve-invalid.js
test-module-hooks-resolve-load-builtin-override-both-prefix.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-resolve-load-builtin-override-both.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-resolve-load-builtin-redirect-prefix.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-resolve-load-builtin-redirect.js module: fix sync resolve hooks for require with node: prefixes 2026-04-27 18:03:21 +02:00
test-module-hooks-resolve-load-import-inline-typescript-override.mjs
test-module-hooks-resolve-load-import-inline-typescript.mjs
test-module-hooks-resolve-load-require-inline-typescript-override.js
test-module-hooks-resolve-load-require-inline-typescript.js
test-module-hooks-resolve-short-circuit-required-middle.js
test-module-hooks-resolve-short-circuit-required-start.js
test-module-hooks-resolve-short-circuit.js
testcfg.py