blob: 409eb77fee7b5c8a88978506372ddef380cc9865 [file] [edit]
const spikeArrest = require('../spikearrest/index');
const assert = require('assert');
describe('spike arrest plugin', () => {
var plugin = null;
beforeEach(() => {
var config = {
timeUnit: 'minute',
bufferSize: 0,
allow: 1
};
var logger = {};
var stats = {};
plugin = spikeArrest.init.apply(null, [config, logger, stats]);
});
it('exposes an onrequest handler', () => {
assert.ok(plugin.onrequest);
});
it('will accept a request', (done) => {
var onrequest_cb = () => {
done();
};
var req = {};
var res = {};
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
});
it('will reject a requests that come in too fast', (done) => {
var onrequest_cb = () => {
};
var onrequest_cb_second = (req, res, next) => {
assert.ok(req instanceof Error);
assert.equal(req.message, 'SpikeArrest engaged');
done();
};
var req = {};
var res = {};
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
plugin.onrequest.apply(null, [req, res, onrequest_cb_second]);
});
});