Created
February 28, 2015 20:22
-
-
Save ischenkodv/4395dfcf971385085ba4 to your computer and use it in GitHub Desktop.
Unit tests for AsyncQueue
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
describe('run()', function() { | |
var realNextFrame, realCancelFrame; | |
beforeEach(function() { | |
jasmine.clock().install(); | |
jasmine.RequestAnimationFrame.install(); | |
realNextFrame = window.nextFrame; | |
realCancelFrame = window.cancelFrame; | |
window.nextFrame = window.requestAnimationFrame; | |
window.cancelFrame = window.cancelAnimationFrame; | |
}); | |
afterEach(function() { | |
jasmine.clock().uninstall(); | |
jasmine.RequestAnimationFrame.uninstall(); | |
window.nextFrame = realNextFrame; | |
window.cancelFrame = realCancelFrame; | |
}); | |
it('executes queue in order when called with the "frame" timeout', function() { | |
var callback1 = { | |
fn: function() { }, | |
timeout: 'frame' | |
}; | |
var callback2 = { | |
fn: function() { }, | |
timeout: 'frame' | |
}; | |
var callback3 = { | |
fn: function() { }, | |
timeout: 3 | |
}; | |
var fnCallback1 = spyOn(callback1, 'fn'); | |
var fnCallback2 = spyOn(callback2, 'fn'); | |
var fnCallback3 = spyOn(callback3, 'fn'); | |
var queue = new AsyncQueue(); | |
queue.add(callback1); | |
queue.add(callback2); | |
queue.add(callback3); | |
queue.run(); | |
jasmine.RequestAnimationFrame.tick(); | |
expect(callback1.fn).toHaveBeenCalled(); | |
expect(callback2.fn).not.toHaveBeenCalled(); | |
expect(callback3.fn).not.toHaveBeenCalled(); | |
jasmine.RequestAnimationFrame.tick(); | |
expect(callback1.fn).toHaveBeenCalled(); | |
expect(callback2.fn).toHaveBeenCalled(); | |
expect(callback3.fn).not.toHaveBeenCalled(); | |
jasmine.clock().tick(3); | |
expect(callback1.fn).toHaveBeenCalled(); | |
expect(callback2.fn).toHaveBeenCalled(); | |
expect(callback3.fn).toHaveBeenCalled(); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment