current commit
260912.8 · lib: put node:bench behind an --experimental-bench flag
// Flags: --experimental-bench --no-warnings

import '../common/index.mjs';
import assert from 'node:assert';
import { createRequire, builtinModules, isBuiltin } from 'node:module';
import benchDefault, {
  after,
  afterEach,
  before,
  beforeEach,
  bench,
  describe,
  run,
  suite,
} from 'node:bench';
import { json, spec } from 'node:bench/reporters';

assert.strictEqual(benchDefault, bench);
assert.strictEqual(describe, suite);
for (const value of [
  after,
  afterEach,
  before,
  beforeEach,
  bench,
  run,
  suite,
]) {
  assert.strictEqual(typeof value, 'function');
}
assert.strictEqual(typeof bench.skip, 'function');
assert.strictEqual(typeof bench.only, 'function');
assert.strictEqual(typeof json, 'function');
assert.strictEqual(typeof spec, 'function');

assert.strictEqual(isBuiltin('node:bench'), true);
assert.strictEqual(isBuiltin('node:bench/reporters'), true);
assert.strictEqual(isBuiltin('bench'), false);
assert.strictEqual(isBuiltin('bench/reporters'), false);
assert.strictEqual(builtinModules.includes('node:bench'), true);
assert.strictEqual(builtinModules.includes('node:bench/reporters'), true);
assert.strictEqual(process.getBuiltinModule('node:bench'), benchDefault);
assert.strictEqual(process.getBuiltinModule('bench'), undefined);

const require = createRequire(import.meta.url);
const reporters = require('node:bench/reporters');
assert.strictEqual(reporters.json, json);
assert.strictEqual(reporters.spec, spec);
assert.throws(() => require('bench'), { code: 'MODULE_NOT_FOUND' });
assert.throws(() => require('bench/reporters'), { code: 'MODULE_NOT_FOUND' });
await assert.rejects(import('bench'), { code: 'ERR_MODULE_NOT_FOUND' });
await assert.rejects(import('bench/reporters'), {
  code: 'ERR_MODULE_NOT_FOUND',
});