mirror of
https://github.com/finos/SymphonyElectron.git
synced 2025-02-25 18:55:29 -06:00
throttle should check for valid args (#113)
This commit is contained in:
parent
2b6139f35a
commit
013b02e04f
@ -6,6 +6,12 @@
|
|||||||
* @param {function} func function to invoke
|
* @param {function} func function to invoke
|
||||||
*/
|
*/
|
||||||
function throttle(throttleTime, func) {
|
function throttle(throttleTime, func) {
|
||||||
|
if (typeof throttleTime !== 'number' || throttleTime <= 0) {
|
||||||
|
throw Error('throttle: invalid throttleTime arg, must be a number: ' + throttleTime);
|
||||||
|
}
|
||||||
|
if (typeof func !== 'function') {
|
||||||
|
throw Error('throttle: invalid func arg, must be a function: ' + func);
|
||||||
|
}
|
||||||
let timer, lastInvoke = 0;
|
let timer, lastInvoke = 0;
|
||||||
return function() {
|
return function() {
|
||||||
let args = arguments;
|
let args = arguments;
|
||||||
|
@ -55,6 +55,35 @@ describe('throttle tests', function() {
|
|||||||
expect(callback.mock.calls.length).toBe(2);
|
expect(callback.mock.calls.length).toBe(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('expect to throw exception', function() {
|
||||||
|
it('when calling throttle with time equal to zero', function(done) {
|
||||||
|
try {
|
||||||
|
throttle(0, function() {});
|
||||||
|
} catch(error) {
|
||||||
|
expect(error.message).toBeDefined();
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('when calling throttle with time less than zero', function(done) {
|
||||||
|
try {
|
||||||
|
throttle(-1, function() {});
|
||||||
|
} catch(error) {
|
||||||
|
expect(error.message).toBeDefined();
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('when calling throttle without a function callback', function(done) {
|
||||||
|
try {
|
||||||
|
throttle(1, 'not a func');
|
||||||
|
} catch(error) {
|
||||||
|
expect(error.message).toBeDefined();
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
afterEach(function() {
|
afterEach(function() {
|
||||||
// restore orig
|
// restore orig
|
||||||
Date.now = origNow;
|
Date.now = origNow;
|
||||||
|
Loading…
Reference in New Issue
Block a user