summaryrefslogtreecommitdiff
path: root/test/parallel/test-require-deps-deprecation.js
blob: b588fa4da9ee3fe12c2b7a1cb4b0bf4ec6d19412 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
'use strict';

const common = require('../common');
const assert = require('assert');
// The v8 modules when imported leak globals. Disable global check.
common.globalCheck = false;

const deprecatedModules = [
  'node-inspect/lib/_inspect',
  'node-inspect/lib/internal/inspect_client',
  'node-inspect/lib/internal/inspect_repl',
  'v8/tools/SourceMap',
  'v8/tools/codemap',
  'v8/tools/consarray',
  'v8/tools/csvparser',
  'v8/tools/logreader',
  'v8/tools/profile',
  'v8/tools/profile_view',
  'v8/tools/splaytree',
  'v8/tools/tickprocessor',
  'v8/tools/tickprocessor-driver'
];

// Newly added deps that do not have a deprecation wrapper around it would
// throw an error, but no warning would be emitted.
const deps = [
  'acorn/dist/acorn',
  'acorn/dist/walk'
];

common.expectWarning('DeprecationWarning', deprecatedModules.map((m) => {
  return `Requiring Node.js-bundled '${m}' module is deprecated. ` +
         'Please install the necessary module locally.';
}));

for (const m of deprecatedModules) {
  try {
    require(m);
  } catch (err) {}
}

// Instead of checking require, check that resolve isn't pointing toward a
// built-in module, as user might already have node installed with acorn in
// require.resolve range.
// Ref: https://github.com/nodejs/node/issues/17148
for (const m of deps) {
  let path;
  try {
    path = require.resolve(m);
  } catch (err) {
    assert.ok(err.toString().startsWith('Error: Cannot find module '));
    continue;
  }
  assert.notStrictEqual(path, m);
}