UNPKG

2.23 kBJavaScriptView Raw
1const quota = require('../quota/index');
2const assert = require('assert');
3
4var exampleConfig = {
5 EdgeMicroTestProduct: {
6 allow: process.env.QUOTA_ALLOW,
7 interval: Number(process.env.QUOTA_INTERVAL),
8 timeUnit: process.env.QUOTA_TIMEUNIT,
9 bufferSize: process.env.QUOTA_BUFFERSIZE,
10 uri: process.env.QUOTA_URI,
11 key: process.env.QUOTA_KEY,
12 secret: process.env.QUOTA_SECRET
13 }
14}
15
16describe('quota plugin', () => {
17 var plugin = null;
18
19 beforeEach(() => {
20 var logger = {};
21 var stats = {};
22
23 plugin = quota.init.apply(null, [exampleConfig, logger, stats]);
24
25 });
26
27 it('exposes an onrequest handler', () => {
28 assert.ok(plugin.onrequest);
29 });
30
31/* it('will quota limit after 3 API calls', (done) => {
32 var count = 0;
33 var onrequest_cb = (err) => {
34 count++;
35 if(count == 4) {
36 assert.equal(count, 4);
37 assert.equal(err.message, 'exceeded quota');
38 done();
39 }
40 };
41
42 var req = {
43 token: {
44 application_name: '0e7762f4-ea67-4cc1-ae4a-21598c35b18f',
45 api_product_list: ['EdgeMicroTestProduct']
46 }
47 }
48
49 var res = {
50 headers: {},
51 setHeader: (key, val) => {
52 res.headers[key] = val;
53 }
54 }
55
56 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
57 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
58 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
59 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
60 }); */
61
62 it('will not quota limit before 3 API calls', (done) => {
63 var count = 0;
64 var onrequest_cb = (err) => {
65 count++;
66 if(count == 3) {
67 assert.equal(count, 3);
68 assert.ok(!(err instanceof Error));
69 done();
70 }
71 };
72
73 var req = {
74 token: {
75 application_name: '0e7762f4-ea67-4cc1-ae4a-21598c35b18f',
76 api_product_list: ['EdgeMicroTestProduct']
77 }
78 }
79
80 var res = {
81 headers: {},
82 setHeader: (key, val) => {
83 res.headers[key] = val;
84 }
85 }
86
87 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
88 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
89 plugin.onrequest.apply(null, [req, res, onrequest_cb]);
90 });
91});
92
93