mirror of
https://github.com/linuxserver/core.git
synced 2026-02-20 05:07:19 +08:00
Add description to function. Use sinion clock for test
This commit is contained in:
parent
cf52ebf36a
commit
c304afef71
1
node_modules/c9/ratelimit.js
generated
vendored
1
node_modules/c9/ratelimit.js
generated
vendored
@ -30,6 +30,7 @@ function ratelimit(key, duration, max) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Returns a deep value from an object. E.g. resolveValue({user: {id: 5}}, "user.id") === 5
|
||||
function resolveValue(obj, path) {
|
||||
return path.split('.').reduce(function(prev, curr) {
|
||||
return prev ? prev[curr] : undefined;
|
||||
|
||||
53
node_modules/c9/ratelimit_test.js
generated
vendored
53
node_modules/c9/ratelimit_test.js
generated
vendored
@ -5,6 +5,7 @@ require("c9/inline-mocha")(module);
|
||||
var ratelimit = require("./ratelimit");
|
||||
var assert = require("assert");
|
||||
var async = require("async");
|
||||
var sinon = require("sinon");
|
||||
|
||||
describe("ratelimit", function() {
|
||||
|
||||
@ -77,37 +78,27 @@ describe("ratelimit", function() {
|
||||
});
|
||||
|
||||
it("Should expire keys at the correct times", function (done) {
|
||||
var clock = sinon.useFakeTimers();
|
||||
var limiter = ratelimit("username", 50, 2);
|
||||
async.series([
|
||||
function(next) {
|
||||
limiter({params: {username: "mario"}}, null, function(err) {
|
||||
assert(!err, err);
|
||||
setTimeout(next, 40);
|
||||
});
|
||||
},
|
||||
function (next) {
|
||||
limiter({params: {username: "mario"}}, null, function(err) {
|
||||
assert(!err, err);
|
||||
setTimeout(next, 45);
|
||||
});
|
||||
},
|
||||
function (next) {
|
||||
limiter({params: {username: "mario"}}, null, function(err) {
|
||||
assert(!err, err);
|
||||
limiter({params: {username: "mario"}}, null, function(err) {
|
||||
assert(err);
|
||||
assert.equal(err.code, 429);
|
||||
setTimeout(next, 40);
|
||||
});
|
||||
});
|
||||
},
|
||||
function (next) {
|
||||
limiter({params: {username: "mario"}}, null, function(err) {
|
||||
assert(!err, err);
|
||||
next();
|
||||
});
|
||||
}
|
||||
], done);
|
||||
limiter({params: {username: "mario"}}, null, function(err){
|
||||
assert(!err, err);
|
||||
});
|
||||
clock.tick(40);
|
||||
limiter({params: {username: "mario"}}, null, function(err){
|
||||
assert(!err, err);
|
||||
});
|
||||
clock.tick(45);
|
||||
limiter({params: {username: "mario"}}, null, function(err){
|
||||
assert(!err, err);
|
||||
});
|
||||
limiter({params: {username: "mario"}}, null, function(err){
|
||||
assert(err);
|
||||
assert.equal(err.code, 429);
|
||||
});
|
||||
clock.tick(40);
|
||||
limiter({params: {username: "mario"}}, null, function(err){
|
||||
assert(!err, err);
|
||||
});
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user