Skip to content

Commit

Permalink
Fix failing tests for 0.10.x, 4.x and 5.x
Browse files Browse the repository at this point in the history
Travis build failed on "Uncaught TypeError: Object.keys called on non-object".
That's a real error (res._headers was initially null until a header is set).
  • Loading branch information
Rob--W committed Nov 11, 2017
1 parent d2b5dd3 commit 7b6ce1a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/cors-anywhere.js
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ exports.createServer = function createServer(options) {

// When the error occurs after setting headers but before writing the response,
// then any previously set headers must be removed.
var headerNames = res.getHeaderNames ? res.getHeaderNames() : Object.keys(res._headers);
var headerNames = res.getHeaderNames ? res.getHeaderNames() : Object.keys(res._headers || {});
headerNames.forEach(function(name) {
res.removeHeader(name);
});
Expand Down
10 changes: 10 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,16 @@ describe('Proxy errors', function() {
});

it('Invalid HTTP status code', function(done) {
// Strict HTTP status validation was introduced in Node 4.5.5+, 5.11.0+.
// https://github.com/nodejs/node/pull/6291
var nodev = process.versions.node.split('.').map(function(v) { return parseInt(v); });
if (nodev[0] < 4 ||
nodev[0] === 4 && nodev[1] < 5 ||
nodev[0] === 4 && nodev[1] === 5 && nodev[2] < 5 ||
nodev[0] === 5 && nodev[1] < 11) {
this.skip();
}

var errorMessage = 'RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: 0';
if (parseInt(process.versions.node, 10) < 9) {
errorMessage = 'RangeError: Invalid status code: 0';
Expand Down

0 comments on commit 7b6ce1a

Please sign in to comment.