| const accumulateRequest = require('../accumulate-request/index'); |
| const assert = require('assert'); |
| |
| describe('accumulate request plugin', () => { |
| var plugin = null; |
| |
| beforeEach(() => { |
| var config = {}; |
| var logger = {}; |
| var stats = {}; |
| |
| plugin = accumulateRequest.init.apply(null, [config, logger, stats]); |
| }); |
| |
| it('exposes an ondata_request handler', () => { |
| assert.ok(plugin.ondata_request); |
| }); |
| |
| it('exposes an onend_request handler', () => { |
| assert.ok(plugin.onend_request); |
| }); |
| |
| it('calls back with two null function arguments in the ondata_request handler', (done) => { |
| var cb = (err, result) => { |
| assert.equal(err, null); |
| assert.equal(result, null); |
| done(); |
| } |
| |
| |
| plugin.ondata_request.apply(null, [{}, {}, Buffer.alloc(5, 'a'), cb]); |
| }); |
| |
| it('will collect all buffers provided to ondata_request handler, concatenate them, and return them as a single buffer', (done) => { |
| var desiredResult = 'aaaaaaaaaaaaaaa'; |
| |
| var ondata_cb = (err, result) => { |
| assert.equal(err, null); |
| assert.equal(result, null); |
| assert.ok(req._chunks); |
| } |
| |
| var onend_cb = (err, result) => { |
| assert.equal(err, null); |
| assert.equal(result.toString(), desiredResult); |
| done(); |
| } |
| |
| var req = {}; |
| |
| plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]); |
| plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]); |
| plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]); |
| |
| plugin.onend_request.apply(null, [req, {}, null, onend_cb]); |
| }); |
| |
| it('will append data included in the end call to the buffer', (done) => { |
| var desiredResult = 'aaaaaaaaaaaaaaaaaaaa'; |
| |
| var ondata_cb = (err, result) => { |
| assert.equal(err, null); |
| assert.equal(result, null); |
| assert.ok(req._chunks); |
| } |
| |
| var onend_cb = (err, result) => { |
| assert.equal(err, null); |
| assert.equal(result.toString(), desiredResult); |
| done(); |
| } |
| |
| var req = {}; |
| |
| plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]); |
| plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]); |
| plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]); |
| |
| plugin.onend_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), onend_cb]); |
| }); |
| |
| it('will create a req._chunks object on the request object', (done) => { |
| var req = {}; |
| var cb = (err, result) => { |
| assert.equal(err, null); |
| assert.equal(result, null); |
| assert.ok(req._chunks); |
| assert.equal(req._chunks.toString(), 'aaaaa'); |
| done(); |
| } |
| |
| plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), cb]); |
| }); |
| |
| it('will call the callback with null if no data events are provided.', (done) => { |
| var onend_cb = (err, result) => { |
| assert.equal(err, null); |
| assert.equal(result, null); |
| done(); |
| } |
| |
| var req = {}; |
| |
| plugin.onend_request.apply(null, [req, {}, null, onend_cb]); |
| |
| }); |
| }) |