'use strict'; const common = require('../common'); const assert = require('assert'); const http = require('http'); const net = require('net'); const response = Buffer.from('HTTP/1.1 200 OK\r\n' + 'Content-Length: 6\r\n' + 'Transfer-Encoding: Chunked\r\n' + '\r\n' + '6\r\nfoobar' + '0\r\n'); const server = net.createServer(common.mustCall((conn) => { conn.write(response); })); server.listen(0, common.mustCall(() => { const req = http.get(`http://localhost:${server.address().port}/`); req.end(); req.on('error', common.mustCall((err) => { const reason = 'Content-Length can\'t be present with Transfer-Encoding'; assert.strictEqual(err.message, `Parse Error: ${reason}`); assert(err.bytesParsed < response.length); assert(err.bytesParsed >= response.indexOf('Transfer-Encoding')); assert.strictEqual(err.code, 'HPE_UNEXPECTED_CONTENT_LENGTH'); assert.strictEqual(err.reason, reason); assert.deepStrictEqual(err.rawPacket, response); server.close(); })); }));