1 | const accumulateResponse = require('../accumulate-response/index');
|
2 | const assert = require('assert');
|
3 |
|
4 | describe('accumulate response plugin', () => {
|
5 | var plugin = null;
|
6 |
|
7 | beforeEach(() => {
|
8 | var config = {};
|
9 | var logger = {};
|
10 | var stats = {};
|
11 |
|
12 | plugin = accumulateResponse.init.apply(null, [config, logger, stats]);
|
13 | });
|
14 |
|
15 | it('exposes an ondata_response handler', () => {
|
16 | assert.ok(plugin.ondata_response);
|
17 | });
|
18 |
|
19 | it('exposes an onend_response handler', () => {
|
20 | assert.ok(plugin.onend_response);
|
21 | });
|
22 |
|
23 | it('calls back with two null function arguments in the ondata_response 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_response.apply(null, [{}, {}, Buffer.alloc(5, 'a'), cb]);
|
32 | });
|
33 |
|
34 | it('will collect all buffers provided to ondata_response 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(res._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 res = {};
|
50 |
|
51 | plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
|
52 | plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
|
53 | plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
|
54 |
|
55 | plugin.onend_response.apply(null, [{}, res, 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(res._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 res = {};
|
74 |
|
75 | plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
|
76 | plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
|
77 | plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
|
78 |
|
79 | plugin.onend_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), onend_cb]);
|
80 | });
|
81 |
|
82 | it('will create a res._chunks object on the request object', (done) => {
|
83 | var res = {};
|
84 | var cb = (err, result) => {
|
85 | assert.equal(err, null);
|
86 | assert.equal(result, null);
|
87 | assert.ok(res._chunks);
|
88 | assert.equal(res._chunks.toString(), 'aaaaa');
|
89 | done();
|
90 | }
|
91 |
|
92 | plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), cb]);
|
93 | });
|
94 |
|
95 | it('will callback with null if no response body is present in targetResponse', (done) => {
|
96 | var res = {};
|
97 | var cb = (err, result) => {
|
98 | assert.equal(err, null);
|
99 | assert.equal(result, null);
|
100 | done();
|
101 | }
|
102 |
|
103 | plugin.onend_response.apply(null, [{}, res, null, cb]);
|
104 |
|
105 | });
|
106 |
|
107 | })
|