1 | const accumulateRequest = require('../accumulate-request/index');
|
2 | const assert = require('assert');
|
3 |
|
4 | describe('accumulate request plugin', () => {
|
5 | var plugin = null;
|
6 |
|
7 | beforeEach(() => {
|
8 | var config = {};
|
9 | var logger = {};
|
10 | var stats = {};
|
11 |
|
12 | plugin = accumulateRequest.init.apply(null, [config, logger, stats]);
|
13 | });
|
14 |
|
15 | it('exposes an ondata_request handler', () => {
|
16 | assert.ok(plugin.ondata_request);
|
17 | });
|
18 |
|
19 | it('exposes an onend_request handler', () => {
|
20 | assert.ok(plugin.onend_request);
|
21 | });
|
22 |
|
23 | it('calls back with two null function arguments in the ondata_request handler', (done) => {
|
24 | var cb = (err, result) => {
|
25 | assert.equal(err, null);
|
26 | assert.equal(result, null);
|
27 | done();
|
28 | }
|
29 |
|
30 |
|
31 | plugin.ondata_request.apply(null, [{}, {}, Buffer.alloc(5, 'a'), cb]);
|
32 | });
|
33 |
|
34 | it('will collect all buffers provided to ondata_request handler, concatenate them, and return them as a single buffer', (done) => {
|
35 | var desiredResult = 'aaaaaaaaaaaaaaa';
|
36 |
|
37 | var ondata_cb = (err, result) => {
|
38 | assert.equal(err, null);
|
39 | assert.equal(result, null);
|
40 | assert.ok(req._chunks);
|
41 | }
|
42 |
|
43 | var onend_cb = (err, result) => {
|
44 | assert.equal(err, null);
|
45 | assert.equal(result.toString(), desiredResult);
|
46 | done();
|
47 | }
|
48 |
|
49 | var req = {};
|
50 |
|
51 | plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]);
|
52 | plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]);
|
53 | plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]);
|
54 |
|
55 | plugin.onend_request.apply(null, [req, {}, null, onend_cb]);
|
56 | });
|
57 |
|
58 | it('will append data included in the end call to the buffer', (done) => {
|
59 | var desiredResult = 'aaaaaaaaaaaaaaaaaaaa';
|
60 |
|
61 | var ondata_cb = (err, result) => {
|
62 | assert.equal(err, null);
|
63 | assert.equal(result, null);
|
64 | assert.ok(req._chunks);
|
65 | }
|
66 |
|
67 | var onend_cb = (err, result) => {
|
68 | assert.equal(err, null);
|
69 | assert.equal(result.toString(), desiredResult);
|
70 | done();
|
71 | }
|
72 |
|
73 | var req = {};
|
74 |
|
75 | plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]);
|
76 | plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]);
|
77 | plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), ondata_cb]);
|
78 |
|
79 | plugin.onend_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), onend_cb]);
|
80 | });
|
81 |
|
82 | it('will create a req._chunks object on the request object', (done) => {
|
83 | var req = {};
|
84 | var cb = (err, result) => {
|
85 | assert.equal(err, null);
|
86 | assert.equal(result, null);
|
87 | assert.ok(req._chunks);
|
88 | assert.equal(req._chunks.toString(), 'aaaaa');
|
89 | done();
|
90 | }
|
91 |
|
92 | plugin.ondata_request.apply(null, [req, {}, Buffer.alloc(5, 'a'), cb]);
|
93 | });
|
94 |
|
95 | it('will call the callback with null if no data events are provided.', (done) => {
|
96 | var onend_cb = (err, result) => {
|
97 | assert.equal(err, null);
|
98 | assert.equal(result, null);
|
99 | done();
|
100 | }
|
101 |
|
102 | var req = {};
|
103 |
|
104 | plugin.onend_request.apply(null, [req, {}, null, onend_cb]);
|
105 |
|
106 | });
|
107 | })
|