UNPKG

1.11 kBJavaScriptView Raw
1const spikeArrest = require('../spikearrest/index');
2const assert = require('assert');
3
4describe('spike arrest plugin', () => {
5 var plugin = null;
6
7 beforeEach(() => {
8 var config = {
9 timeUnit: 'minute',
10 bufferSize: 0,
11 allow: 1
12 };
13 var logger = {};
14 var stats = {};
15
16 plugin = spikeArrest.init.apply(null, [config, logger, stats]);
17 });
18
19 it('exposes an onrequest handler', () => {
20 assert.ok(plugin.onrequest);
21 });
22
23 it('will accept a request', (done) => {
24 var onrequest_cb = () => {
25 done();
26 };
27
28 var req = {};
29 var res = {};
30 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
31 });
32
33 it('will reject a requests that come in too fast', (done) => {
34 var onrequest_cb = () => {
35 };
36
37 var onrequest_cb_second = (req, res, next) => {
38 assert.ok(req instanceof Error);
39 assert.equal(req.message, 'SpikeArrest engaged');
40 done();
41 };
42
43 var req = {};
44 var res = {};
45 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
46 plugin.onrequest.apply(null, [req, res, onrequest_cb_second]);
47 });
48});