// 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',
});