/
test-cli-options-negation.js
39 lines (30 loc) · 1.14 KB
/
test-cli-options-negation.js
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
'use strict';
require('../common');
const assert = require('assert');
const { spawnSync } = require('child_process');
// --warnings is on by default.
assertHasWarning(spawnWithFlags([]));
// --warnings can be passed alone.
assertHasWarning(spawnWithFlags(['--warnings']));
// --no-warnings can be passed alone.
assertHasNoWarning(spawnWithFlags(['--no-warnings']));
// Last flag takes precedence.
assertHasWarning(spawnWithFlags(['--no-warnings', '--warnings']));
// Non-boolean flags cannot be negated.
assert(spawnWithFlags(['--no-max-http-header-size']).stderr.toString().includes(
'--no-max-http-header-size is an invalid negation because it is not ' +
'a boolean option',
));
// Inexistant flags cannot be negated.
assert(spawnWithFlags(['--no-i-dont-exist']).stderr.toString().includes(
'bad option: --no-i-dont-exist',
));
function spawnWithFlags(flags) {
return spawnSync(process.execPath, [...flags, '-e', 'new Buffer(0)']);
}
function assertHasWarning(proc) {
assert(proc.stderr.toString().includes('Buffer() is deprecated'));
}
function assertHasNoWarning(proc) {
assert(!proc.stderr.toString().includes('Buffer() is deprecated'));
}