diff options
Diffstat (limited to 'test/addons/make-callback-domain-warning/test.js')
-rw-r--r-- | test/addons/make-callback-domain-warning/test.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/addons/make-callback-domain-warning/test.js b/test/addons/make-callback-domain-warning/test.js new file mode 100644 index 0000000000..2ea3c3f3d1 --- /dev/null +++ b/test/addons/make-callback-domain-warning/test.js @@ -0,0 +1,35 @@ +'use strict'; + +const common = require('../../common'); +const assert = require('assert'); +const domain = require('domain'); +const binding = require(`./build/${common.buildType}/binding`); + +function makeCallback(object, cb) { + binding.makeCallback(object, () => setImmediate(cb)); +} + +let latestWarning = null; +process.on('warning', function(warning) { + latestWarning = warning; +}); + +const d = domain.create(); + +// When domain is disabled, no warning will be emitted +makeCallback({ domain: d }, common.mustCall(function() { + assert.strictEqual(latestWarning, null); + + d.run(common.mustCall(function() { + // No warning will be emitted when no domain property is applied + makeCallback({}, common.mustCall(function() { + assert.strictEqual(latestWarning, null); + + // Warning is emitted when domain property is used and domain is enabled + makeCallback({ domain: d }, common.mustCall(function() { + assert.strictEqual(latestWarning.name, 'DeprecationWarning'); + assert.strictEqual(latestWarning.code, 'DEP0097'); + })); + })); + })); +})); |