Adding upstream version 1.2.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
eac40c2ddc
commit
e864a6175d
14 changed files with 584 additions and 0 deletions
71
tests/debounce.js
Normal file
71
tests/debounce.js
Normal file
|
@ -0,0 +1,71 @@
|
|||
import { debounce } from '..';
|
||||
import { expect } from 'chai';
|
||||
|
||||
/*global describe,it*/
|
||||
|
||||
describe('debounce()', () => {
|
||||
it('should debounce when used as a simple decorator', next => {
|
||||
let c = {
|
||||
calls: 0,
|
||||
args: null,
|
||||
|
||||
@debounce
|
||||
foo(...args) {
|
||||
c.calls++;
|
||||
c.args = args;
|
||||
c.context = this;
|
||||
}
|
||||
};
|
||||
|
||||
expect(c).to.have.property('calls', 0);
|
||||
c.foo(1);
|
||||
expect(c).to.have.property('calls', 0);
|
||||
c.foo(2);
|
||||
c.foo(3);
|
||||
setTimeout( () => {
|
||||
expect(c).to.have.property('calls', 1);
|
||||
expect(c.args).to.deep.equal([3]);
|
||||
expect(c.context).to.equal(c);
|
||||
|
||||
next();
|
||||
}, 20);
|
||||
});
|
||||
|
||||
it('should debounce when used as a function', next => {
|
||||
let c = debounce( (...args) => {
|
||||
m.calls++;
|
||||
m.args = args;
|
||||
}),
|
||||
m = { calls:0, args:null };
|
||||
|
||||
expect(m).to.have.property('calls', 0);
|
||||
c(1);
|
||||
expect(m).to.have.property('calls', 0);
|
||||
c(2);
|
||||
c(3);
|
||||
setTimeout( () => {
|
||||
expect(m).to.have.property('calls', 1);
|
||||
expect(m.args).to.deep.equal([3]);
|
||||
|
||||
next();
|
||||
}, 20);
|
||||
});
|
||||
|
||||
it('should support passing a delay', next => {
|
||||
let c = debounce(5, (...args) => {
|
||||
m.calls.push(args);
|
||||
}),
|
||||
m = { calls:[] };
|
||||
|
||||
c(1);
|
||||
setTimeout(()=> c(2), 1);
|
||||
setTimeout(()=> c(3), 10);
|
||||
setTimeout(()=> c(4), 14);
|
||||
setTimeout(()=> c(5), 22);
|
||||
expect(m.calls).to.have.length(0);
|
||||
setTimeout( () => {
|
||||
expect(m.calls).to.deep.equal([ [2], [4], [5] ]);
|
||||
next();
|
||||
}, 30);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue