mirror of
https://github.com/nodejs/node.git
synced 2024-11-28 22:46:31 +01:00
test: use assert.throw to test exceptions
The test wasn't checking directly that an assertion was thrown. Instead,
it was checking that spawn did not sucessfully spawn a non-existent
command.
However, the command chosen, dir, exists in GNU coreutils, so it exists
on Linux (though not on BSD derived OS X). The test as written passed on
Linux, even with the TypeError it is supposed to be checking for deleted
from spawn(). It would also pass on Windows if a ls.exe existed.
The approach is unnecessarily obscure, assert.throw() is for asserting
code throws, using it is more clear and works regardless of what
commands do or do not exist.
PR-URL: https://github.com/joyent/node/pull/8454
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
Cherry-picked-from: 2ff29cc7e3
Conflicts:
test/parallel/test-child-process-spawn-typeerror.js
This commit is contained in:
parent
22d20582cc
commit
f76722686b
@ -1,23 +1,14 @@
|
||||
var spawn = require('child_process').spawn,
|
||||
assert = require('assert'),
|
||||
windows = (process.platform === 'win32'),
|
||||
cmd = (windows) ? 'rundll32' : 'ls',
|
||||
invalidcmd = 'hopefully_you_dont_have_this_on_your_machine',
|
||||
invalidArgsMsg = /Incorrect value of args option/,
|
||||
invalidOptionsMsg = /options argument must be an object/,
|
||||
errors = 0;
|
||||
var assert = require('assert');
|
||||
var child_process = require('child_process');
|
||||
var spawn = child_process.spawn;
|
||||
var cmd = (process.platform === 'win32') ? 'rundll32' : 'ls';
|
||||
var invalidArgsMsg = /Incorrect value of args option/;
|
||||
var invalidOptionsMsg = /options argument must be an object/;
|
||||
|
||||
try {
|
||||
// Ensure this throws a TypeError
|
||||
var child = spawn(invalidcmd, 'this is not an array');
|
||||
|
||||
child.on('error', function (err) {
|
||||
errors++;
|
||||
});
|
||||
|
||||
} catch (e) {
|
||||
assert.equal(e instanceof TypeError, true);
|
||||
}
|
||||
// verify that args argument must be an array
|
||||
assert.throws(function() {
|
||||
spawn(cmd, 'this is not an array');
|
||||
}, TypeError);
|
||||
|
||||
// verify that valid argument combinations do not throw
|
||||
assert.doesNotThrow(function() {
|
||||
@ -57,6 +48,3 @@ assert.throws(function() {
|
||||
spawn(cmd, [], 1);
|
||||
}, invalidOptionsMsg);
|
||||
|
||||
process.on('exit', function() {
|
||||
assert.equal(errors, 0);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user