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) { function trailingEdge(time) {
if (timerId !== undefined) { clearTimeout(timerId);
clearTimeout(timerId); timerId = undefined;
timerId = undefined;
}
// Only invoke if we have `lastArgs` which means `func` has been // Only invoke if we have `lastArgs` which means `func` has been
// debounced at least once. // debounced at least once.
if (trailing && lastArgs) { if (trailing && lastArgs) {

View File

@@ -21782,14 +21782,33 @@
}, 32, { 'leading': false }); }, 32, { 'leading': false });
funced(); funced();
var actual = funced.flush(); assert.strictEqual(funced.flush(), 1);
setTimeout(function() { setTimeout(function() {
assert.strictEqual(actual, 1);
assert.strictEqual(callCount, 1); assert.strictEqual(callCount, 1);
done(); done();
}, 64); }, 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);
});
}); });
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/