11cb0ef41Sopenharmony_ciimport { spawnPromisified } from '../common/index.mjs'; 21cb0ef41Sopenharmony_ciimport * as fixtures from '../common/fixtures.mjs'; 31cb0ef41Sopenharmony_ciimport assert from 'node:assert'; 41cb0ef41Sopenharmony_ciimport { execPath } from 'node:process'; 51cb0ef41Sopenharmony_ciimport { describe, it } from 'node:test'; 61cb0ef41Sopenharmony_ci 71cb0ef41Sopenharmony_ci 81cb0ef41Sopenharmony_cidescribe('ESM: ensure initialization happens only once', { concurrency: true }, () => { 91cb0ef41Sopenharmony_ci it(async () => { 101cb0ef41Sopenharmony_ci const { code, stderr, stdout } = await spawnPromisified(execPath, [ 111cb0ef41Sopenharmony_ci '--experimental-import-meta-resolve', 121cb0ef41Sopenharmony_ci '--loader', 131cb0ef41Sopenharmony_ci fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), 141cb0ef41Sopenharmony_ci '--no-warnings', 151cb0ef41Sopenharmony_ci fixtures.path('es-modules', 'runmain.mjs'), 161cb0ef41Sopenharmony_ci ]); 171cb0ef41Sopenharmony_ci 181cb0ef41Sopenharmony_ci assert.strictEqual(stderr, ''); 191cb0ef41Sopenharmony_ci /** 201cb0ef41Sopenharmony_ci * resolveHookRunCount = 2: 211cb0ef41Sopenharmony_ci * 1. fixtures/…/runmain.mjs 221cb0ef41Sopenharmony_ci * 2. node:module (imported by fixtures/…/runmain.mjs) 231cb0ef41Sopenharmony_ci * 3. doesnt-matter.mjs (first import.meta.resolve call) 241cb0ef41Sopenharmony_ci * 4. fixtures/…/runmain.mjs (entry point) 251cb0ef41Sopenharmony_ci * 5. doesnt-matter.mjs (second import.meta.resolve call) 261cb0ef41Sopenharmony_ci */ 271cb0ef41Sopenharmony_ci assert.strictEqual(stdout.match(/resolve passthru/g)?.length, 5); 281cb0ef41Sopenharmony_ci assert.strictEqual(code, 0); 291cb0ef41Sopenharmony_ci }); 301cb0ef41Sopenharmony_ci}); 31