microgateway-plugins
Version:
Plugins for Apige Edge Microgateway
108 lines (81 loc) • 3.11 kB
JavaScript
const accumulateResponse = require('../accumulate-response/index');
const assert = require('assert');
describe('accumulate response plugin', () => {
var plugin = null;
beforeEach(() => {
var config = {};
var logger = {};
var stats = {};
plugin = accumulateResponse.init.apply(null, [config, logger, stats]);
});
it('exposes an ondata_response handler', () => {
assert.ok(plugin.ondata_response);
});
it('exposes an onend_response handler', () => {
assert.ok(plugin.onend_response);
});
it('calls back with two null function arguments in the ondata_response handler', (done) => {
var cb = (err, result) => {
assert.equal(err, null);
assert.equal(result, null);
done();
}
plugin.ondata_response.apply(null, [{}, {}, Buffer.alloc(5, 'a'), cb]);
});
it('will collect all buffers provided to ondata_response 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(res._chunks);
}
var onend_cb = (err, result) => {
assert.equal(err, null);
assert.equal(result.toString(), desiredResult);
done();
}
var res = {};
plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
plugin.onend_response.apply(null, [{}, res, 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(res._chunks);
}
var onend_cb = (err, result) => {
assert.equal(err, null);
assert.equal(result.toString(), desiredResult);
done();
}
var res = {};
plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), ondata_cb]);
plugin.onend_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), onend_cb]);
});
it('will create a res._chunks object on the request object', (done) => {
var res = {};
var cb = (err, result) => {
assert.equal(err, null);
assert.equal(result, null);
assert.ok(res._chunks);
assert.equal(res._chunks.toString(), 'aaaaa');
done();
}
plugin.ondata_response.apply(null, [{}, res, Buffer.alloc(5, 'a'), cb]);
});
it('will callback with null if no response body is present in targetResponse', (done) => {
var res = {};
var cb = (err, result) => {
assert.equal(err, null);
assert.equal(result, null);
done();
}
plugin.onend_response.apply(null, [{}, res, null, cb]);
});
})