From db17497d599d135d4f3c67bf926c8def318f14d5 Mon Sep 17 00:00:00 2001 From: simov Date: Fri, 4 May 2018 16:30:38 +0300 Subject: [PATCH 1/4] Use Buffer.from and Buffer.alloc in tests --- README.md | 4 ++-- tests/server.js | 2 +- tests/test-basic-auth.js | 8 ++++---- tests/test-body.js | 26 +++++++++++++------------- tests/test-emptyBody.js | 2 +- tests/test-form-data.js | 4 ++-- tests/test-form.js | 2 +- tests/test-gzip.js | 2 +- tests/test-https.js | 18 +++++++++--------- tests/test-multipart.js | 2 +- tests/test-params.js | 22 +++++++++++----------- 11 files changed, 46 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index cedc19d51..81ffd95ef 100644 --- a/README.md +++ b/README.md @@ -187,7 +187,7 @@ var formData = { // Pass a simple key-value pair my_field: 'my_value', // Pass data via Buffers - my_buffer: new Buffer([1, 2, 3]), + my_buffer: Buffer.from([1, 2, 3]), // Pass data via Streams my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), // Pass multiple values /w an Array @@ -221,7 +221,7 @@ For advanced cases, you can access the form-data object itself via `r.form()`. T var r = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {...}) var form = r.form(); form.append('my_field', 'my_value'); -form.append('my_buffer', new Buffer([1, 2, 3])); +form.append('my_buffer', Buffer.from([1, 2, 3])); form.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), {filename: 'unicycle.jpg'}); ``` See the [form-data README](https://github.com/form-data/form-data) for more information & examples. diff --git a/tests/server.js b/tests/server.js index 614f03c44..93a68913d 100644 --- a/tests/server.js +++ b/tests/server.js @@ -76,7 +76,7 @@ exports.createPostStream = function (text) { postStream.writeable = true postStream.readable = true setTimeout(function () { - postStream.emit('data', new Buffer(text)) + postStream.emit('data', Buffer.from(text)) postStream.emit('end') }, 0) return postStream diff --git a/tests/test-basic-auth.js b/tests/test-basic-auth.js index 8c1a69a1c..5368b0584 100644 --- a/tests/test-basic-auth.js +++ b/tests/test-basic-auth.js @@ -15,13 +15,13 @@ tape('setup', function (t) { var ok if (req.headers.authorization) { - if (req.headers.authorization === 'Basic ' + new Buffer('user:pass').toString('base64')) { + if (req.headers.authorization === 'Basic ' + Buffer.from('user:pass').toString('base64')) { ok = true - } else if (req.headers.authorization === 'Basic ' + new Buffer('user:').toString('base64')) { + } else if (req.headers.authorization === 'Basic ' + Buffer.from('user:').toString('base64')) { ok = true - } else if (req.headers.authorization === 'Basic ' + new Buffer(':pass').toString('base64')) { + } else if (req.headers.authorization === 'Basic ' + Buffer.from(':pass').toString('base64')) { ok = true - } else if (req.headers.authorization === 'Basic ' + new Buffer('user:pâss').toString('base64')) { + } else if (req.headers.authorization === 'Basic ' + Buffer.from('user:pâss').toString('base64')) { ok = true } else { // Bad auth header, don't send back WWW-Authenticate header diff --git a/tests/test-body.js b/tests/test-body.js index 2cbb494cf..dc482125a 100644 --- a/tests/test-body.js +++ b/tests/test-body.js @@ -35,28 +35,28 @@ addTest('testGet', { addTest('testGetChunkBreak', { resp: server.createChunkResponse( - [ new Buffer([239]), - new Buffer([163]), - new Buffer([191]), - new Buffer([206]), - new Buffer([169]), - new Buffer([226]), - new Buffer([152]), - new Buffer([131]) + [ Buffer.from([239]), + Buffer.from([163]), + Buffer.from([191]), + Buffer.from([206]), + Buffer.from([169]), + Buffer.from([226]), + Buffer.from([152]), + Buffer.from([131]) ]), expectBody: '\uF8FF\u03A9\u2603' }) addTest('testGetBuffer', { - resp: server.createGetResponse(new Buffer('TESTING!')), encoding: null, expectBody: new Buffer('TESTING!') + resp: server.createGetResponse(Buffer.from('TESTING!')), encoding: null, expectBody: Buffer.from('TESTING!') }) addTest('testGetEncoding', { - resp: server.createGetResponse(new Buffer('efa3bfcea9e29883', 'hex')), encoding: 'hex', expectBody: 'efa3bfcea9e29883' + resp: server.createGetResponse(Buffer.from('efa3bfcea9e29883', 'hex')), encoding: 'hex', expectBody: 'efa3bfcea9e29883' }) addTest('testGetUTF', { - resp: server.createGetResponse(new Buffer([0xEF, 0xBB, 0xBF, 226, 152, 131])), encoding: 'utf8', expectBody: '\u2603' + resp: server.createGetResponse(Buffer.from([0xEF, 0xBB, 0xBF, 226, 152, 131])), encoding: 'utf8', expectBody: '\u2603' }) addTest('testGetJSON', { @@ -68,7 +68,7 @@ addTest('testPutString', { }) addTest('testPutBuffer', { - resp: server.createPostValidator('PUTTINGDATA'), method: 'PUT', body: new Buffer('PUTTINGDATA') + resp: server.createPostValidator('PUTTINGDATA'), method: 'PUT', body: Buffer.from('PUTTINGDATA') }) addTest('testPutJSON', { @@ -141,7 +141,7 @@ tape('typed array', function (t) { encoding: null }, function (err, res, body) { t.error(err) - t.deepEqual(new Buffer(data), body) + t.deepEqual(Buffer.from(data), body) server.close(t.end) }) }) diff --git a/tests/test-emptyBody.js b/tests/test-emptyBody.js index 250bfe179..684d3d5ae 100644 --- a/tests/test-emptyBody.js +++ b/tests/test-emptyBody.js @@ -32,7 +32,7 @@ tape('empty body without encoding', function (t) { }, function (err, res, body) { t.equal(err, null) t.equal(res.statusCode, 200) - t.same(body, new Buffer(0)) + t.same(body, Buffer.alloc(0)) t.end() }) }) diff --git a/tests/test-form-data.js b/tests/test-form-data.js index d43a88d7c..990562be5 100644 --- a/tests/test-form-data.js +++ b/tests/test-form-data.js @@ -25,7 +25,7 @@ function runTest (t, options) { res.end() return } else { - t.ok(req.headers.authorization === 'Basic ' + new Buffer('user:pass').toString('base64')) + t.ok(req.headers.authorization === 'Basic ' + Buffer.from('user:pass').toString('base64')) } } @@ -84,7 +84,7 @@ function runTest (t, options) { var url = 'http://localhost:' + this.address().port // @NOTE: multipartFormData properties must be set here so that my_file read stream does not leak in node v0.8 multipartFormData.my_field = 'my_value' - multipartFormData.my_buffer = new Buffer([1, 2, 3]) + multipartFormData.my_buffer = Buffer.from([1, 2, 3]) multipartFormData.my_file = fs.createReadStream(localFile) multipartFormData.remote_file = request(url + '/file') multipartFormData.secret_file = { diff --git a/tests/test-form.js b/tests/test-form.js index 1c0a4d25d..5f262f204 100644 --- a/tests/test-form.js +++ b/tests/test-form.js @@ -74,7 +74,7 @@ tape('multipart form append', function (t) { var url = 'http://localhost:' + this.address().port FIELDS = [ { name: 'my_field', value: 'my_value' }, - { name: 'my_buffer', value: new Buffer([1, 2, 3]) }, + { name: 'my_buffer', value: Buffer.from([1, 2, 3]) }, { name: 'my_file', value: fs.createReadStream(localFile) }, { name: 'remote_file', value: request(url + '/file') } ] diff --git a/tests/test-gzip.js b/tests/test-gzip.js index b69f3cdc4..df0d2d6a0 100644 --- a/tests/test-gzip.js +++ b/tests/test-gzip.js @@ -69,7 +69,7 @@ tape('setup', function (t) { var a = 48271 var m = 0x7FFFFFFF var x = 1 - testContentBig = new Buffer(10240) + testContentBig = Buffer.alloc(10240) for (var i = 0; i < testContentBig.length; ++i) { x = (a * x) & m // Printable ASCII range from 32-126, inclusive diff --git a/tests/test-https.js b/tests/test-https.js index 3138f3d1e..028bc775b 100644 --- a/tests/test-https.js +++ b/tests/test-https.js @@ -55,14 +55,14 @@ function runAllTests (strict, s) { runTest('testGetChunkBreak', { resp: server.createChunkResponse( - [ new Buffer([239]), - new Buffer([163]), - new Buffer([191]), - new Buffer([206]), - new Buffer([169]), - new Buffer([226]), - new Buffer([152]), - new Buffer([131]) + [ Buffer.from([239]), + Buffer.from([163]), + Buffer.from([191]), + Buffer.from([206]), + Buffer.from([169]), + Buffer.from([226]), + Buffer.from([152]), + Buffer.from([131]) ]), expectBody: '\uf8ff\u03a9\u2603' }) @@ -76,7 +76,7 @@ function runAllTests (strict, s) { }) runTest('testPutBuffer', { - resp: server.createPostValidator('PUTTINGDATA'), method: 'PUT', body: new Buffer('PUTTINGDATA') + resp: server.createPostValidator('PUTTINGDATA'), method: 'PUT', body: Buffer.from('PUTTINGDATA') }) runTest('testPutJSON', { diff --git a/tests/test-multipart.js b/tests/test-multipart.js index e52cd0490..8eff422e2 100644 --- a/tests/test-multipart.js +++ b/tests/test-multipart.js @@ -77,7 +77,7 @@ function runTest (t, a) { multipartData = [ {name: 'my_field', body: 'my_value'}, {name: 'my_number', body: 1000}, - {name: 'my_buffer', body: new Buffer([1, 2, 3])}, + {name: 'my_buffer', body: Buffer.from([1, 2, 3])}, {name: 'my_file', body: fs.createReadStream(localFile)}, {name: 'remote_file', body: request(url + '/file')} ] diff --git a/tests/test-params.js b/tests/test-params.js index 5b7880dd4..4659aa70f 100644 --- a/tests/test-params.js +++ b/tests/test-params.js @@ -36,22 +36,22 @@ runTest('testGet', { runTest('testGetChunkBreak', { resp: server.createChunkResponse( - [ new Buffer([239]), - new Buffer([163]), - new Buffer([191]), - new Buffer([206]), - new Buffer([169]), - new Buffer([226]), - new Buffer([152]), - new Buffer([131]) + [ Buffer.from([239]), + Buffer.from([163]), + Buffer.from([191]), + Buffer.from([206]), + Buffer.from([169]), + Buffer.from([226]), + Buffer.from([152]), + Buffer.from([131]) ]), expectBody: '\uf8ff\u03a9\u2603' }) runTest('testGetBuffer', { - resp: server.createGetResponse(new Buffer('TESTING!')), + resp: server.createGetResponse(Buffer.from('TESTING!')), encoding: null, - expectBody: new Buffer('TESTING!') + expectBody: Buffer.from('TESTING!') }) runTest('testGetJSON', { @@ -69,7 +69,7 @@ runTest('testPutString', { runTest('testPutBuffer', { resp: server.createPostValidator('PUTTINGDATA'), method: 'PUT', - body: new Buffer('PUTTINGDATA') + body: Buffer.from('PUTTINGDATA') }) runTest('testPutJSON', { From d555bd74e9e45310269440671765da9858eca471 Mon Sep 17 00:00:00 2001 From: simov Date: Tue, 15 May 2018 14:12:15 +0300 Subject: [PATCH 2/4] Generate server certificates for Node > v10 --- tests/ssl/ca/ca.srl | 2 +- tests/ssl/ca/gen-server.sh | 13 +++++++++ tests/ssl/ca/server.crt | 29 +++++++++++++------- tests/ssl/ca/server.csr | 36 ++++++++++++++++++------ tests/ssl/ca/server.key | 56 +++++++++++++++++++++++++++++++++----- 5 files changed, 109 insertions(+), 27 deletions(-) create mode 100755 tests/ssl/ca/gen-server.sh diff --git a/tests/ssl/ca/ca.srl b/tests/ssl/ca/ca.srl index 17128db3a..641a1184a 100644 --- a/tests/ssl/ca/ca.srl +++ b/tests/ssl/ca/ca.srl @@ -1 +1 @@ -ADF62016AA40C9C3 +ADF62016AA40C9C4 diff --git a/tests/ssl/ca/gen-server.sh b/tests/ssl/ca/gen-server.sh new file mode 100755 index 000000000..d80e586ac --- /dev/null +++ b/tests/ssl/ca/gen-server.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# fixes: +# Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small +# on Node > v10 + +openssl genrsa 4096 > server.key + +openssl req -new -nodes -sha256 -key server.key -config server.cnf -out server.csr + +openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -out server.crt + +# password: password diff --git a/tests/ssl/ca/server.crt b/tests/ssl/ca/server.crt index efe96cefc..14d53d494 100644 --- a/tests/ssl/ca/server.crt +++ b/tests/ssl/ca/server.crt @@ -1,16 +1,25 @@ -----BEGIN CERTIFICATE----- -MIICejCCAeMCCQCt9iAWqkDJwzANBgkqhkiG9w0BAQUFADCBojELMAkGA1UEBhMC +MIIEQjCCA6sCCQCt9iAWqkDJxDANBgkqhkiG9w0BAQsFADCBojELMAkGA1UEBhMC VVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdPYWtsYW5kMRAwDgYDVQQKEwdyZXF1 ZXN0MSYwJAYDVQQLEx1yZXF1ZXN0IENlcnRpZmljYXRlIEF1dGhvcml0eTESMBAG A1UEAxMJcmVxdWVzdENBMSYwJAYJKoZIhvcNAQkBFhdtaWtlYWxAbWlrZWFscm9n -ZXJzLmNvbTAeFw0xMjAzMDEyMjUwNTZaFw0yMjAyMjcyMjUwNTZaMIGjMQswCQYD -VQQGEwJVUzELMAkGA1UECBMCQ0ExEDAOBgNVBAcTB09ha2xhbmQxEDAOBgNVBAoT -B3JlcXVlc3QxEDAOBgNVBAsTB3Rlc3RpbmcxKTAnBgNVBAMTIHRlc3RpbmcucmVx +ZXJzLmNvbTAeFw0xODA1MTUxMTEwNTRaFw0xODA2MTQxMTEwNTRaMIGjMQswCQYD +VQQGEwJVUzELMAkGA1UECAwCQ0ExEDAOBgNVBAcMB09ha2xhbmQxEDAOBgNVBAoM +B3JlcXVlc3QxEDAOBgNVBAsMB3Rlc3RpbmcxKTAnBgNVBAMMIHRlc3RpbmcucmVx dWVzdC5taWtlYWxyb2dlcnMuY29tMSYwJAYJKoZIhvcNAQkBFhdtaWtlYWxAbWlr -ZWFscm9nZXJzLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDgVl0jMumvOpmM -20W5v9yhGgZj8hPhEQF/N7yCBVBn/rWGYm70IHC8T/pR5c0LkWc5gdnCJEvKWQjh -DBKxZD8FAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEABShRkNgFbgs4vUWW9R9deNJj -7HJoiTmvkmoOC7QzcYkjdgHbOxsSq3rBnwxsVjY9PAtPwBn0GRspOeG7KzKRgySB -kb22LyrCFKbEOfKO/+CJc80ioK9zEPVjGsFMyAB+ftYRqM+s/4cQlTg/m89l01wC -yapjN3RxZbInGhWR+jA= +ZWFscm9nZXJzLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMAO +bEb7fLo40jhUv2D/uIySN2UfUt2RKrPFQaa7LHUyiQNmtuiZj9lSg6mXoPNQtf0E +B6tYlTZtk9092MiQFJZ8T8o3Ip9g5vxbP9Il0hZFTBBv4fOmaSQp3+I6/mu4YVHJ +ih0uxGBUi6wzX/4WvQl17Hljska84GdoCcpAgu/HgWenv7F9yEihOg2/HuBeH1uE +iklrBdQOHges/mEohUKFgsFd+5WxK/Lg8AIWI1BF5JIVF5heydY5DSVAoV1hwGbS +OCowi+9KKsbiymWoN0SrjzEk0MZlXdpdD+nWbIr2krt1Farf94zho0I1I3ZGmca6 +2cZX5/6pA+lWo2M3IwzHSzhnMvTLeOUrlEC0Xi7g4Iduopmsl2pPV8s0/h8KUZ06 +DRIEW+ebQxH36a7rA+CGTq/wMWh9YlN6hVaAgIGF86jsOwZRKA1tZlmjUZ7h1D85 +ULbtrkpDjGhnOvX/bClQ/gs0ZbpgJA0RNFQjhmiAsWJhCfmdVGTw2Ejz6sntGeUR +aJXTkCIRFj+b8f5GjPhvGJZW7JEoSadnrY90Slb3BLVFbbeKwVN+bt3HdVDays3P +QyHInIjcdPuxP6PfwWdGaZ1MfRd6g5NfUtPgPtr7Qn/r+giDuVmUONtvTFWuZA3N +GOMCZcVk8eE2j4koGH5dbFBcpegHBrbscZudoQJLAgMBAAEwDQYJKoZIhvcNAQEL +BQADgYEAJqzJnlV8AQx3rvW5W1PDW7SqtdDyM4yMTaMvmYgBz9+RKNaND8Nmx46L +pZ7bXP4QJg9vdz3/Cjy4GzNwSkXj8IMJ0cTCbLANwQux0DJR95OUNUJOuRFd1oty +kb8G2rAIIV1wd3JiXHrqyxJhs/Cx/R4IlpTxqoLXBSHrjD94ZYo= -----END CERTIFICATE----- diff --git a/tests/ssl/ca/server.csr b/tests/ssl/ca/server.csr index a8e7595a5..218a5ffa9 100644 --- a/tests/ssl/ca/server.csr +++ b/tests/ssl/ca/server.csr @@ -1,11 +1,29 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIBgjCCASwCAQAwgaMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEQMA4GA1UE -BxMHT2FrbGFuZDEQMA4GA1UEChMHcmVxdWVzdDEQMA4GA1UECxMHdGVzdGluZzEp -MCcGA1UEAxMgdGVzdGluZy5yZXF1ZXN0Lm1pa2VhbHJvZ2Vycy5jb20xJjAkBgkq -hkiG9w0BCQEWF21pa2VhbEBtaWtlYWxyb2dlcnMuY29tMFwwDQYJKoZIhvcNAQEB -BQADSwAwSAJBAOBWXSMy6a86mYzbRbm/3KEaBmPyE+ERAX83vIIFUGf+tYZibvQg -cLxP+lHlzQuRZzmB2cIkS8pZCOEMErFkPwUCAwEAAaAjMCEGCSqGSIb3DQEJBzEU -ExJwYXNzd29yZCBjaGFsbGVuZ2UwDQYJKoZIhvcNAQEFBQADQQBD3E5WekQzCEJw -7yOcqvtPYIxGaX8gRKkYfLPoj3pm3GF5SGqtJKhylKfi89szHXgktnQgzff9FN+A -HidVJ/3u +MIIFDDCCAvQCAQAwgaMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEQMA4GA1UE +BwwHT2FrbGFuZDEQMA4GA1UECgwHcmVxdWVzdDEQMA4GA1UECwwHdGVzdGluZzEp +MCcGA1UEAwwgdGVzdGluZy5yZXF1ZXN0Lm1pa2VhbHJvZ2Vycy5jb20xJjAkBgkq +hkiG9w0BCQEWF21pa2VhbEBtaWtlYWxyb2dlcnMuY29tMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAwA5sRvt8ujjSOFS/YP+4jJI3ZR9S3ZEqs8VBprss +dTKJA2a26JmP2VKDqZeg81C1/QQHq1iVNm2T3T3YyJAUlnxPyjcin2Dm/Fs/0iXS +FkVMEG/h86ZpJCnf4jr+a7hhUcmKHS7EYFSLrDNf/ha9CXXseWOyRrzgZ2gJykCC +78eBZ6e/sX3ISKE6Db8e4F4fW4SKSWsF1A4eB6z+YSiFQoWCwV37lbEr8uDwAhYj +UEXkkhUXmF7J1jkNJUChXWHAZtI4KjCL70oqxuLKZag3RKuPMSTQxmVd2l0P6dZs +ivaSu3UVqt/3jOGjQjUjdkaZxrrZxlfn/qkD6VajYzcjDMdLOGcy9Mt45SuUQLRe +LuDgh26imayXak9XyzT+HwpRnToNEgRb55tDEffprusD4IZOr/AxaH1iU3qFVoCA +gYXzqOw7BlEoDW1mWaNRnuHUPzlQtu2uSkOMaGc69f9sKVD+CzRlumAkDRE0VCOG +aICxYmEJ+Z1UZPDYSPPqye0Z5RFoldOQIhEWP5vx/kaM+G8YllbskShJp2etj3RK +VvcEtUVtt4rBU35u3cd1UNrKzc9DIciciNx0+7E/o9/BZ0ZpnUx9F3qDk19S0+A+ +2vtCf+v6CIO5WZQ4229MVa5kDc0Y4wJlxWTx4TaPiSgYfl1sUFyl6AcGtuxxm52h +AksCAwEAAaAjMCEGCSqGSIb3DQEJBzEUDBJwYXNzd29yZCBjaGFsbGVuZ2UwDQYJ +KoZIhvcNAQELBQADggIBALdF0DPA1PRdoZhUmyTILL3+jimfQb0AYVs74okurIMK +aPTrnfq1XxwKlFyO3thBcjbXfJ4uDGk/xBty6ifBJeAox5CHpbS4fDriuMI79VLZ +FWsP9cVGlDV4kUfn/r24+ByNHRJvkVEGo0BmO3LBWJqYRLEkroEY3hyCi7cxbcNw +yj7vgf4oN5mLiufXV+7uFQHO71+9pHpZ3uL8GBvjL0dog6HAbVbFv/tTyQwLi0IC +jxRbmgnhAMJallFnHrQ9Ab2F0uvbiG9qY9rMybRJEHw2q7RWGqlHWLMEPfro9FNq +2wr/b+ExKDgEqcZnBegRqCWTzEeb7wgAzBPASPQGGk1xFgCHZmRJg64u16bqM3/x +WdAtzB0j+GRUQEU/EK5bksCw6UH5Yat3HC/ZR4MHxpuyGKzXG/MfpoCZQSBKAe46 +nCt6haMGWsHJHjvhIwaP5X6PEqi08tUsm+T64IjkxGoMVk2kfDOWwcBtLdkHKcR8 +MhOZD9kCk0vqruyO5EbfNw+k8oa7HcoMgzU0qi4msbqBgwUNYsj6sDfGbvZnktah +vvjax7KJaUwaAFr8koxQbmOsmqxrCnWge2vQ/plp3B3ReJ7ZpRS9rUQRMOYGTfOK +ZCPYzWGmH+S31gvGNNX4CNbF8FHQwyiesLOJ9SqDUI5zyuSNd1khUC+HrlsZ62Fr -----END CERTIFICATE REQUEST----- diff --git a/tests/ssl/ca/server.key b/tests/ssl/ca/server.key index 72d86984f..e6b2c1893 100644 --- a/tests/ssl/ca/server.key +++ b/tests/ssl/ca/server.key @@ -1,9 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- From 0c5db42fcd0890eab966f335a1bc8c858255b962 Mon Sep 17 00:00:00 2001 From: simov Date: Tue, 15 May 2018 14:29:03 +0300 Subject: [PATCH 3/4] Skip status code 105 on Node > v10 --- tests/test-gzip.js | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/tests/test-gzip.js b/tests/test-gzip.js index df0d2d6a0..933b7bae0 100644 --- a/tests/test-gzip.js +++ b/tests/test-gzip.js @@ -270,28 +270,23 @@ tape('do not try to pipe HEAD request responses', function (t) { tape('do not try to pipe responses with no body', function (t) { var options = { url: server.url + '/foo', gzip: true } - options.headers = {code: 105} - request.post(options, function (err, res, body) { - t.equal(err, null) - t.equal(res.headers.code, '105') - t.equal(body, '') + // skip 105 on Node >= v10 + var statusCodes = process.version.split('.')[0].slice(1) >= 10 + ? [204, 304] : [105, 204, 304] - options.headers = {code: 204} + ;(function next (index) { + if (index === statusCodes.length) { + t.end() + return + } + options.headers = {code: statusCodes[index]} request.post(options, function (err, res, body) { t.equal(err, null) - t.equal(res.headers.code, '204') + t.equal(res.headers.code, statusCodes[index].toString()) t.equal(body, '') - - options.headers = {code: 304} - request.post(options, function (err, res, body) { - t.equal(err, null) - t.equal(res.headers.code, '304') - t.equal(body, '') - - t.end() - }) + next(++index) }) - }) + })(0) }) tape('cleanup', function (t) { From e47ce95a7581bd3ca555903d3492cc8da683ed93 Mon Sep 17 00:00:00 2001 From: simov Date: Tue, 15 May 2018 14:34:13 +0300 Subject: [PATCH 4/4] Add Node v10 build target explicitly --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f3fc327d7..9ea82aa50 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ language: node_js node_js: - node + - 10 - 8 - 6 - 4