Add debounce/throttle test for calling cancel and flush without anything queued.

This commit is contained in:
John-David Dalton
2016-03-24 00:35:22 -07:00
parent 577226bbd0
commit 016de80ce7
2 changed files with 24 additions and 6 deletions

View File

@@ -9137,10 +9137,9 @@
}
function trailingEdge(time) {
if (timerId !== undefined) {
clearTimeout(timerId);
timerId = undefined;
}
clearTimeout(timerId);
timerId = undefined;
// Only invoke if we have `lastArgs` which means `func` has been
// debounced at least once.
if (trailing && lastArgs) {

View File

@@ -21782,14 +21782,33 @@
}, 32, { 'leading': false });
funced();
var actual = funced.flush();
assert.strictEqual(funced.flush(), 1);
setTimeout(function() {
assert.strictEqual(actual, 1);
assert.strictEqual(callCount, 1);
done();
}, 64);
});
QUnit.test('_.' + methodName + ' should noop `cancel` and `flush` when nothing is queued', function(assert) {
assert.expect(2);
var done = assert.async();
var callCount = 0;
var funced = func(function() {
callCount++;
}, 32);
funced.cancel();
assert.strictEqual(funced.flush(), undefined);
setTimeout(function() {
assert.strictEqual(callCount, 0);
done();
}, 64);
});
});
/*--------------------------------------------------------------------------*/