diff options
Diffstat (limited to 'javascript/videojs/test/unit/utils/fn.test.js')
| -rw-r--r-- | javascript/videojs/test/unit/utils/fn.test.js | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/javascript/videojs/test/unit/utils/fn.test.js b/javascript/videojs/test/unit/utils/fn.test.js deleted file mode 100644 index 9ff23c7..0000000 --- a/javascript/videojs/test/unit/utils/fn.test.js +++ /dev/null @@ -1,113 +0,0 @@ -/* eslint-env qunit */ -import sinon from 'sinon'; -import * as Fn from '../../../src/js/utils/fn'; - -QUnit.module('utils/fn', { - beforeEach() { - this.clock = sinon.useFakeTimers(); - }, - afterEach() { - this.clock.restore(); - } -}); - -QUnit.test('should add context to a function', function(assert) { - assert.expect(1); - - const newContext = { test: 'obj'}; - const asdf = function() { - assert.ok(this === newContext); - }; - const fdsa = Fn.bind_(newContext, asdf); - - fdsa(); -}); - -QUnit.test('should throttle functions properly', function(assert) { - assert.expect(3); - - const tester = sinon.spy(); - const throttled = Fn.throttle(tester, 100); - - // We must wait a full wait period before the function can be called. - this.clock.tick(100); - throttled(); - throttled(); - this.clock.tick(50); - throttled(); - - assert.strictEqual(tester.callCount, 1, 'the throttled function has been called the correct number of times'); - - this.clock.tick(50); - throttled(); - - assert.strictEqual(tester.callCount, 2, 'the throttled function has been called the correct number of times'); - - throttled(); - this.clock.tick(100); - throttled(); - - assert.strictEqual(tester.callCount, 3, 'the throttled function has been called the correct number of times'); -}); - -QUnit.test('should debounce functions properly', function(assert) { - assert.expect(6); - - const tester = sinon.spy(); - const debounced = Fn.debounce(tester, 100); - - // Called twice on each assertion to ensure that multiple calls only result - // in a call to the inner function. - debounced(); - debounced(); - assert.strictEqual(tester.callCount, 0, 'the debounced function was NOT called because no time has elapsed'); - - this.clock.tick(100); - assert.strictEqual(tester.callCount, 1, 'the debounced function was called because enough time elapsed'); - - this.clock.tick(100); - assert.strictEqual(tester.callCount, 1, 'the debounced function was NOT called again even though time elapsed'); - - debounced(); - debounced(); - assert.strictEqual(tester.callCount, 1, 'the debounced function was NOT called because no time has elapsed since invocation'); - - this.clock.tick(50); - assert.strictEqual(tester.callCount, 1, 'the debounced function was NOT called because the clock has NOT ticket forward enough'); - - this.clock.tick(50); - assert.strictEqual(tester.callCount, 2, 'the debounced function was called because the clock ticked forward enough'); -}); - -QUnit.test('may immediately invoke debounced functions', function(assert) { - assert.expect(2); - - const tester = sinon.spy(); - const debounced = Fn.debounce(tester, 100, true); - - // Called twice on each assertion to ensure that multiple calls only result - // in a call to the inner function. - debounced(); - debounced(); - assert.strictEqual(tester.callCount, 1, 'the debounced function was called because true was passed'); - - this.clock.tick(100); - assert.strictEqual(tester.callCount, 1, 'the debounced function was NOT called because it has only been invoked once'); -}); - -QUnit.test('may cancel debounced functions', function(assert) { - assert.expect(2); - - const tester = sinon.spy(); - const debounced = Fn.debounce(tester, 100); - - debounced(); - this.clock.tick(50); - debounced.cancel(); - this.clock.tick(50); - assert.strictEqual(tester.callCount, 0, 'the debounced function was NOT called because it was cancelled'); - - debounced(); - this.clock.tick(100); - assert.strictEqual(tester.callCount, 1, 'the debounced function was called because it was NOT cancelled'); -}); |
