UNPKG

good-requests-filter

Version:

Simple transform stream for filtering specific resuqest logging with good

87 lines (60 loc) 1.87 kB
'use strict'; const Stream = require('stream'); const Code = require('code'); const Lab = require('lab'); const GoodRequestsFilter = require('..'); const lab = exports.lab = Lab.script(); const expect = Code.expect; const describe = lab.describe; const it = lab.it; const internals = { readStream() { const stream = new Stream.Readable({ objectMode: true }); stream._read = () => { }; return stream; } }; describe('RequestsFilter', () => { it('should not filter any non request logs', { plan: 1 }, (done) => { const stream = new GoodRequestsFilter(); const result = []; stream.on('data', (data) => { result.push(data); }); stream.on('end', () => { expect(result).to.deep.equal([{ event: 'response', id: 1 }]); done(); }); const read = internals.readStream(); read.pipe(stream); read.push({ event: 'response', id: 1 }); read.push(null); }); it('should filter all requests starting with /test', { plan: 1 }, (done) => { const stream = new GoodRequestsFilter({ paths: [/\/test\/*/] }); const result = []; stream.on('data', (data) => { result.push(data); }); stream.on('end', () => { expect(result).to.deep.equal([{ event: 'request', id: 2, path: '/check' }]); done(); }); const read = internals.readStream(); read.pipe(stream); read.push({ event: 'request', id: 1, path: '/test/a' }); read.push({ event: 'request', id: 2, path: '/check' }); read.push({ event: 'request', id: 3, path: '/test/b' }); read.push(null); }); });