import { spawnPromisified } from '../common/index.mjs'; import * as fixtures from '../common/fixtures.mjs'; import assert from 'node:assert'; import { execPath } from 'node:process'; import { describe, it } from 'node:test'; import { isInternalThread, Worker } from 'node:worker_threads'; import * as common from '../common/index.mjs'; describe('worker_threads.isInternalThread', { concurrency: !process.env.TEST_PARALLEL }, () => { it('should be true inside the loader thread', async () => { const { code, signal, stdout, stderr } = await spawnPromisified(execPath, [ '--no-warnings', '--experimental-loader', fixtures.fileURL('loader-is-internal-thread.js'), '--eval', 'setTimeout(() => {},99)', ]); assert.strictEqual(stderr, ''); assert.match(stdout, /isInternalThread: true/); assert.strictEqual(code, 0); assert.strictEqual(signal, null); }); it('should be false inside the main thread', async () => { assert.strictEqual(isInternalThread, false); }); it('should be false inside a regular worker thread', async () => { const worker = new Worker(fixtures.path('worker-is-internal-thread.js')); worker.on('message', common.mustCall((message) => { assert.strictEqual(message, 'isInternalThread: false'); })); }); });