UNPKG

heroku-debug

Version:
142 lines (119 loc) 3.76 kB
'use strict' var agent = require('../../_agent')() var test = require('tape') var http = require('http') agent.timeout.active = false test('client-side timeout - call end', function (t) { agent._instrumentation._queue = [] var clientReq var server = http.createServer(function (req, res) { res.on('close', function () { setTimeout(function () { t.equal(agent._instrumentation._queue.length, 1, 'should add transactions to queue') server.close() t.end() }, 50) }) clientReq.abort() setTimeout(function () { res.write('Hello') // server emits clientError if written in same tick as abort setTimeout(function () { res.end(' World') }, 10) }, 10) }) server.listen(function () { var port = server.address().port clientReq = http.get('http://localhost:' + port, function (res) { t.fail('should not call http.get callback') }) clientReq.on('error', function (err) { if (err.code !== 'ECONNRESET') throw err }) }) }) test('client-side timeout - don\'t call end', function (t) { agent._instrumentation._queue = [] var clientReq var server = http.createServer(function (req, res) { res.on('close', function () { setTimeout(function () { t.equal(agent._instrumentation._queue.length, 0, 'should not add transactions to queue') server.close() t.end() }, 50) }) clientReq.abort() setTimeout(function () { res.write('Hello') // server emits clientError if written in same tick as abort }, 10) }) server.listen(function () { var port = server.address().port clientReq = http.get('http://localhost:' + port, function (res) { t.fail('should not call http.get callback') }) clientReq.on('error', function (err) { if (err.code !== 'ECONNRESET') throw err }) }) }) test('server-side timeout - call end', function (t) { agent._instrumentation._queue = [] var timedout = false var closeEvent = false var server = http.createServer(function (req, res) { res.on('close', function () { closeEvent = true }) setTimeout(function () { t.ok(timedout, 'should have closed socket') t.ok(closeEvent, 'res should emit close event') res.end('Hello World') setTimeout(function () { t.equal(agent._instrumentation._queue.length, 1, 'should not add transactions to queue') server.close() t.end() }, 50) }, 200) }) server.setTimeout(100) server.listen(function () { var port = server.address().port var clientReq = http.get('http://localhost:' + port, function (res) { t.fail('should not call http.get callback') }) clientReq.on('error', function (err) { if (err.code !== 'ECONNRESET') throw err timedout = true }) }) }) test('server-side timeout - don\'t call end', function (t) { agent._instrumentation._queue = [] var timedout = false var closeEvent = false var server = http.createServer(function (req, res) { res.on('close', function () { closeEvent = true }) setTimeout(function () { t.ok(timedout, 'should have closed socket') t.ok(closeEvent, 'res should emit close event') t.equal(agent._instrumentation._queue.length, 0, 'should not add transactions to queue') server.close() t.end() }, 200) }) server.setTimeout(100) server.listen(function () { var port = server.address().port var clientReq = http.get('http://localhost:' + port, function (res) { t.fail('should not call http.get callback') }) clientReq.on('error', function (err) { if (err.code !== 'ECONNRESET') throw err timedout = true }) }) })