node/test/parallel/test-process-no-deprecation.js
Anna Henningsen a4564f3649
util: adhere to noDeprecation set at runtime
Until now, the docs stated that `process.noDeprecation` could be set
at runtime, but before any modules were loaded. That was not true,
because `lib/internal/util.js` was loaded during the process startup
process, so setting the flag at runtime was pointless.

Minimal test case:

    process.noDeprecation = true;
    process.EventEmitter;

This patch moves checking `process.noDeprecation` to the place where
it was actually used.

PR-URL: https://github.com/nodejs/node/pull/6683
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2016-05-13 21:33:42 +02:00

34 lines
1.1 KiB
JavaScript

'use strict';
// Flags: --expose_internals --no-warnings
// The --no-warnings flag only supresses writing the warning to stderr, not the
// emission of the corresponding event. This test file can be run without it.
process.noDeprecation = true;
const common = require('../common');
const assert = require('assert');
function listener() {
common.fail('received unexpected warning');
}
process.addListener('warning', listener);
const internalUtil = require('internal/util');
internalUtil.printDeprecationMessage('Something is deprecated.');
// The warning would be emitted in the next tick, so continue after that.
process.nextTick(common.mustCall(() => {
// Check that deprecations can be re-enabled.
process.noDeprecation = false;
process.removeListener('warning', listener);
process.addListener('warning', common.mustCall((warning) => {
assert.strictEqual(warning.name, 'DeprecationWarning');
assert.strictEqual(warning.message, 'Something else is deprecated.');
}));
internalUtil.printDeprecationMessage('Something else is deprecated.');
}));