'use strict'; // This tests that AsyncResource throws an error if bad parameters are passed require('../common'); const assert = require('assert'); const async_hooks = require('async_hooks'); const { AsyncResource } = async_hooks; // Setup init hook such parameters are validated async_hooks.createHook({ init() {} }).enable(); assert.throws(() => { return new AsyncResource(); }, { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', }); assert.throws(() => { new AsyncResource(''); }, { code: 'ERR_ASYNC_TYPE', name: 'TypeError', }); assert.throws(() => { new AsyncResource('type', -4); }, { code: 'ERR_INVALID_ASYNC_ID', name: 'RangeError', }); assert.throws(() => { new AsyncResource('type', Math.PI); }, { code: 'ERR_INVALID_ASYNC_ID', name: 'RangeError', });