| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/happymandarin/node_modules/throttleit/ |
Upload File : |
var assert = require('assert');
var throttle = require('./');
describe('throttle', function(){
function counter() {
function count(){
count.invoked++;
}
count.invoked = 0;
return count;
}
it('should throttle a function', function(done){
var count = counter();
var wait = 100;
var total = 500;
var fn = throttle(count, wait);
var interval = setInterval(fn, 20);
setTimeout(function(){
clearInterval(interval);
assert(count.invoked === (total / wait));
done();
}, total + 5);
});
it('should call the function last time', function(done){
var count = counter();
var wait = 100;
var fn = throttle(count, wait);
fn();
fn();
assert(count.invoked === 1);
setTimeout(function(){
assert(count.invoked === 2);
done();
}, wait + 5);
});
it('should pass last context', function(done){
var wait = 100;
var ctx;
var fn = throttle(logctx, wait);
var foo = {};
var bar = {};
fn.call(foo);
fn.call(bar);
assert(ctx === foo);
setTimeout(function(){
assert(ctx === bar);
done();
}, wait + 5);
function logctx() {
ctx = this;
}
});
it('should pass last arguments', function(done){
var wait = 100;
var args;
var fn = throttle(logargs, wait);
fn.call(null, 1);
fn.call(null, 2);
assert(args && args[0] === 1);
setTimeout(function(){
assert(args && args[0] === 2);
done();
}, wait + 5);
function logargs() {
args = arguments;
}
});
});