• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3require('../common');
4
5// Tests basic functionality of util.deprecate().
6
7const assert = require('assert');
8const util = require('util');
9
10const expectedWarnings = new Map();
11
12// Emits deprecation only once if same function is called.
13{
14  const msg = 'fhqwhgads';
15  const fn = util.deprecate(() => {}, msg);
16  expectedWarnings.set(msg, { code: undefined, count: 1 });
17  fn();
18  fn();
19}
20
21// Emits deprecation twice for different functions.
22{
23  const msg = 'sterrance';
24  const fn1 = util.deprecate(() => {}, msg);
25  const fn2 = util.deprecate(() => {}, msg);
26  expectedWarnings.set(msg, { code: undefined, count: 2 });
27  fn1();
28  fn2();
29}
30
31// Emits deprecation only once if optional code is the same, even for different
32// functions.
33{
34  const msg = 'cannonmouth';
35  const code = 'deprecatesque';
36  const fn1 = util.deprecate(() => {}, msg, code);
37  const fn2 = util.deprecate(() => {}, msg, code);
38  expectedWarnings.set(msg, { code, count: 1 });
39  fn1();
40  fn2();
41  fn1();
42  fn2();
43}
44
45process.on('warning', (warning) => {
46  assert.strictEqual(warning.name, 'DeprecationWarning');
47  assert.ok(expectedWarnings.has(warning.message));
48  const expected = expectedWarnings.get(warning.message);
49  assert.strictEqual(warning.code, expected.code);
50  expected.count = expected.count - 1;
51  if (expected.count === 0)
52    expectedWarnings.delete(warning.message);
53});
54
55process.on('exit', () => {
56  assert.deepStrictEqual(expectedWarnings, new Map());
57});
58