UNPKG

@tlrg/middleware-js

Version:
75 lines (58 loc) 1.89 kB
require('chai').should(); var dgram = require('dgram'); var udpServer = dgram.createSocket('udp4'); var express = require('express'); var request = require('request'); var StatsdClient = require('statsd-client'); var hostname = require('os').hostname(); var metrics = new StatsdClient({ host: 'localhost', port: 8326, prefix: hostname + '.moonstick.' }); var hostname = require('os').hostname(); var requestStats = require('../lib/middlewares/requestStats'); describe('Request Stats', function () { var udpLog = []; var app, server; before(function (done) { udpServer.once('listening', function () { // var address = udpServer.address(); done(); }); udpServer.bind(8326, 'localhost'); }); beforeEach(function () { udpLog = []; app = express(); app.set('metrics', metrics); app.use(requestStats); app.get('/', function (req, res) { res.status(200).send('sup'); }); server = app.listen(4391); }); afterEach(function () { server.close(); }); it('should emit all stats over udp', function (done) { var expectedMessages = [ hostname + '.moonstick.active_requests:1|c', hostname + '.moonstick.requests_handled:1|c', hostname + '.moonstick.active_requests:-1|c', hostname + '.moonstick.requestTime:1|ms' ]; udpServer.on('message', function (msg) { // Set all timers to 1 msg = msg.toString().replace(/:[0-9\.]+\|ms/, ':1|ms'); var msgs = msg.split('\n'); msgs.should.deep.equal(expectedMessages); done(); }); request.get('http://localhost:4391/', function (err) { if (err) { return done(err); } }); }); });