aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/node-inspect/test/cli/invalid-args.test.js
blob: c1aaeb6a9ce7504ff0f2f28145792f2218132d3c (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
'use strict';
const Path = require('path');
const { createServer } = require('net');

const { test } = require('tap');

const startCLI = require('./start-cli');

test('launch CLI w/o args', (t) => {
  const cli = startCLI([]);
  return cli.quit()
    .then((code) => {
      t.equal(code, 1, 'exits with non-zero exit code');
      t.match(cli.output, /^Usage:/, 'Prints usage info');
    });
});

test('launch w/ invalid host:port', (t) => {
  const cli = startCLI(['localhost:914']);
  return cli.quit()
    .then((code) => {
      t.match(
        cli.output,
        'failed to connect',
        'Tells the user that the connection failed');
      t.equal(code, 1, 'exits with non-zero exit code');
    });
});

test('launch w/ unavailable port', async (t) => {
  const blocker = createServer((socket) => socket.end());
  const port = await new Promise((resolve, reject) => {
    blocker.on('error', reject);
    blocker.listen(0, '127.0.0.1', () => resolve(blocker.address().port));
  });

  try {
    const script = Path.join('examples', 'three-lines.js');
    const cli = startCLI([`--port=${port}`, script]);
    const code = await cli.quit();

    t.notMatch(
      cli.output,
      'report this bug',
      'Omits message about reporting this as a bug');
    t.match(
      cli.output,
      `waiting for 127.0.0.1:${port} to be free`,
      'Tells the user that the port wasn\'t available');
    t.equal(code, 1, 'exits with non-zero exit code');
  } finally {
    blocker.close();
  }
});