Browse Source

test: add expectWarning to common

There are multiple tests that use the same boilerplate to test that
warnings are correctly emitted. This adds a new common function to do that
and changes the tests to use it.

PR-URL: https://github.com/nodejs/node/pull/8662
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
v6
Michaël Zasso 9 years ago
parent
commit
43e1ca84f2
  1. 13
      test/common.js
  2. 8
      test/parallel/test-buffer-deprecated.js
  3. 13
      test/parallel/test-crypto-deprecated.js
  4. 14
      test/parallel/test-repl-deprecated.js
  5. 13
      test/parallel/test-util.js

13
test/common.js

@ -508,3 +508,16 @@ exports.isAlive = function isAlive(pid) {
return false; return false;
} }
}; };
exports.expectWarning = function(name, expected) {
if (typeof expected === 'string')
expected = [expected];
process.on('warning', exports.mustCall((warning) => {
assert.strictEqual(warning.name, name);
assert.ok(expected.includes(warning.message),
`unexpected error message: "${warning.message}"`);
// Remove a warning message after it is seen so that we guarantee that we
// get each message only once.
expected.splice(expected.indexOf(warning.message), 1);
}, expected.length));
};

8
test/parallel/test-buffer-deprecated.js

@ -1,17 +1,11 @@
'use strict'; 'use strict';
const common = require('../common'); const common = require('../common');
const assert = require('assert');
const expected = const expected =
'Using Buffer without `new` will soon stop working. ' + 'Using Buffer without `new` will soon stop working. ' +
'Use `new Buffer()`, or preferably ' + 'Use `new Buffer()`, or preferably ' +
'`Buffer.from()`, `Buffer.allocUnsafe()` or `Buffer.alloc()` instead.'; '`Buffer.from()`, `Buffer.allocUnsafe()` or `Buffer.alloc()` instead.';
common.expectWarning('DeprecationWarning', expected);
process.on('warning', common.mustCall((warning) => {
assert.strictEqual(warning.name, 'DeprecationWarning');
assert.strictEqual(warning.message, expected,
`unexpected error message: "${warning.message}"`);
}, 1));
Buffer(1); Buffer(1);
Buffer(1); Buffer(1);

13
test/parallel/test-crypto-deprecated.js

@ -9,19 +9,10 @@ if (!common.hasCrypto) {
const crypto = require('crypto'); const crypto = require('crypto');
const tls = require('tls'); const tls = require('tls');
const expected = [ common.expectWarning('DeprecationWarning', [
'crypto.Credentials is deprecated. Use tls.SecureContext instead.', 'crypto.Credentials is deprecated. Use tls.SecureContext instead.',
'crypto.createCredentials is deprecated. Use tls.createSecureContext instead.' 'crypto.createCredentials is deprecated. Use tls.createSecureContext instead.'
]; ]);
process.on('warning', common.mustCall((warning) => {
assert.strictEqual(warning.name, 'DeprecationWarning');
assert.notStrictEqual(expected.indexOf(warning.message), -1,
`unexpected error message: "${warning.message}"`);
// Remove a warning message after it is seen so that we guarantee that we get
// each message only once.
expected.splice(expected.indexOf(warning.message), 1);
}, expected.length));
// Accessing the deprecated function is enough to trigger the warning event. // Accessing the deprecated function is enough to trigger the warning event.
// It does not need to be called. So the assert serves the purpose of both // It does not need to be called. So the assert serves the purpose of both

14
test/parallel/test-repl-deprecated.js

@ -3,18 +3,8 @@ const common = require('../common');
const assert = require('assert'); const assert = require('assert');
const repl = require('repl'); const repl = require('repl');
const expected = [ common.expectWarning('DeprecationWarning',
'replServer.convertToContext() is deprecated' 'replServer.convertToContext() is deprecated');
];
process.on('warning', common.mustCall((warning) => {
assert.strictEqual(warning.name, 'DeprecationWarning');
assert.notStrictEqual(expected.indexOf(warning.message), -1,
`unexpected error message: "${warning.message}"`);
// Remove a warning message after it is seen so that we guarantee that we get
// each message only once.
expected.splice(expected.indexOf(warning.message), 1);
}, expected.length));
// Create a dummy stream that does nothing // Create a dummy stream that does nothing
const stream = new common.ArrayStream(); const stream = new common.ArrayStream();

13
test/parallel/test-util.js

@ -121,21 +121,12 @@ assert.strictEqual(util.isFunction(function() {}), true);
assert.strictEqual(util.isFunction(), false); assert.strictEqual(util.isFunction(), false);
assert.strictEqual(util.isFunction('string'), false); assert.strictEqual(util.isFunction('string'), false);
const expected = [ common.expectWarning('DeprecationWarning', [
'util.print is deprecated. Use console.log instead.', 'util.print is deprecated. Use console.log instead.',
'util.puts is deprecated. Use console.log instead.', 'util.puts is deprecated. Use console.log instead.',
'util.debug is deprecated. Use console.error instead.', 'util.debug is deprecated. Use console.error instead.',
'util.error is deprecated. Use console.error instead.' 'util.error is deprecated. Use console.error instead.'
]; ]);
process.on('warning', common.mustCall((warning) => {
assert.strictEqual(warning.name, 'DeprecationWarning');
assert.notStrictEqual(expected.indexOf(warning.message), -1,
`unexpected error message: "${warning.message}"`);
// Remove a warning message after it is seen so that we guarantee that we get
// each message only once.
expected.splice(expected.indexOf(warning.message), 1);
}, expected.length));
util.print('test'); util.print('test');
util.puts('test'); util.puts('test');

Loading…
Cancel
Save