test: refactor test-http-response-statuscode

* move repeated code to function
* use strings for expected error (exposes result for [] as empty string)
* remove unneeded `common.mustCall()` usage with function arguments that
  are not callbacks

PR-URL: https://github.com/nodejs/node/pull/11274
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
This commit is contained in:
Rich Trott 2017-02-09 14:23:00 -08:00
parent 87df7e65bc
commit dd1cf8bb37
1 changed files with 20 additions and 42 deletions

View File

@ -6,76 +6,54 @@ const http = require('http');
const MAX_REQUESTS = 13; const MAX_REQUESTS = 13;
let reqNum = 0; let reqNum = 0;
const createErrorMessage = (code) => { function test(res, header, code) {
return new RegExp(`^RangeError: Invalid status code: ${code}$`); const errRegExp = new RegExp(`^RangeError: Invalid status code: ${code}$`);
}; assert.throws(() => {
res.writeHead(header);
}, errRegExp);
}
const server = http.Server(common.mustCall(function(req, res) { const server = http.Server(common.mustCall(function(req, res) {
switch (reqNum) { switch (reqNum) {
case 0: case 0:
assert.throws(common.mustCall(() => { test(res, -1, '-1');
res.writeHead(-1);
}), createErrorMessage(-1));
break; break;
case 1: case 1:
assert.throws(common.mustCall(() => { test(res, Infinity, 'Infinity');
res.writeHead(Infinity);
}), createErrorMessage(Infinity));
break; break;
case 2: case 2:
assert.throws(common.mustCall(() => { test(res, NaN, 'NaN');
res.writeHead(NaN);
}), createErrorMessage(NaN));
break; break;
case 3: case 3:
assert.throws(common.mustCall(() => { test(res, {}, '\\[object Object\\]');
res.writeHead({});
}), createErrorMessage('\\[object Object\\]'));
break; break;
case 4: case 4:
assert.throws(common.mustCall(() => { test(res, 99, '99');
res.writeHead(99);
}), createErrorMessage(99));
break; break;
case 5: case 5:
assert.throws(common.mustCall(() => { test(res, 1000, '1000');
res.writeHead(1000);
}), createErrorMessage(1000));
break; break;
case 6: case 6:
assert.throws(common.mustCall(() => { test(res, '1000', '1000');
res.writeHead('1000');
}), createErrorMessage('1000'));
break; break;
case 7: case 7:
assert.throws(common.mustCall(() => { test(res, null, 'null');
res.writeHead(null);
}), createErrorMessage(null));
break; break;
case 8: case 8:
assert.throws(common.mustCall(() => { test(res, true, 'true');
res.writeHead(true);
}), createErrorMessage(true));
break; break;
case 9: case 9:
assert.throws(common.mustCall(() => { test(res, [], '');
res.writeHead([]);
}), createErrorMessage([]));
break; break;
case 10: case 10:
assert.throws(common.mustCall(() => { test(res, 'this is not valid', 'this is not valid');
res.writeHead('this is not valid');
}), createErrorMessage('this is not valid'));
break; break;
case 11: case 11:
assert.throws(common.mustCall(() => { test(res, '404 this is not valid either', '404 this is not valid either');
res.writeHead('404 this is not valid either');
}), createErrorMessage('404 this is not valid either'));
break; break;
case 12: case 12:
assert.throws(common.mustCall(() => { assert.throws(() => { res.writeHead(); },
res.writeHead(); /^RangeError: Invalid status code: undefined$/);
}), createErrorMessage(undefined));
this.close(); this.close();
break; break;
default: default: