blob: 90a6a2641a266a3ac45f2323264122578c8b1182 [file] [edit]
const quota = require('../quota/index');
const assert = require('assert');
var exampleConfig = {
EdgeMicroTestProduct: {
allow: process.env.QUOTA_ALLOW,
interval: Number(process.env.QUOTA_INTERVAL),
timeUnit: process.env.QUOTA_TIMEUNIT,
bufferSize: process.env.QUOTA_BUFFERSIZE,
uri: process.env.QUOTA_URI,
key: process.env.QUOTA_KEY,
secret: process.env.QUOTA_SECRET
}
}
describe('quota plugin', () => {
var plugin = null;
beforeEach(() => {
var logger = {};
var stats = {};
plugin = quota.init.apply(null, [exampleConfig, logger, stats]);
});
it('exposes an onrequest handler', () => {
assert.ok(plugin.onrequest);
});
/* it('will quota limit after 3 API calls', (done) => {
var count = 0;
var onrequest_cb = (err) => {
count++;
if(count == 4) {
assert.equal(count, 4);
assert.equal(err.message, 'exceeded quota');
done();
}
};
var req = {
token: {
application_name: '0e7762f4-ea67-4cc1-ae4a-21598c35b18f',
api_product_list: ['EdgeMicroTestProduct']
}
}
var res = {
headers: {},
setHeader: (key, val) => {
res.headers[key] = val;
}
}
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
}); */
it('will not quota limit before 3 API calls', (done) => {
var count = 0;
var onrequest_cb = (err) => {
count++;
if(count == 3) {
assert.equal(count, 3);
assert.ok(!(err instanceof Error));
done();
}
};
var req = {
token: {
application_name: '0e7762f4-ea67-4cc1-ae4a-21598c35b18f',
api_product_list: ['EdgeMicroTestProduct']
}
}
var res = {
headers: {},
setHeader: (key, val) => {
res.headers[key] = val;
}
}
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
plugin.onrequest.apply(null, [req, res, onrequest_cb]);
});
});