/
githubmirror
/
angular.js
Обзор
Документация
Войти
/
githubmirror
/
angular.js
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/ngAnimate/rafSchedulerSpec.js
143 строки
3 KB
Michał Gołębiowski
chore(eslint): enable `quotes: ["error", "single"]`
10 авг 2016, 22:52
10 авг 2016, 22:52
9360aa2
Код
Авторство
О чём код?
'use strict'; describe('$$rAFScheduler', function() { beforeEach(module('ngAnimate')); it('should accept an array of tasks and run the first task immediately', inject(function($$rAFScheduler) { var taskSpy = jasmine.createSpy(); var tasks = [taskSpy]; $$rAFScheduler([tasks]); expect(taskSpy).toHaveBeenCalled(); })); it('should run tasks based on how many RAFs have run in comparison to the task index', inject(function($$rAFScheduler, $$rAF) { var i, tasks = []; for (i = 0; i < 5; i++) { tasks.push([jasmine.createSpy()]); } $$rAFScheduler(tasks); for (i = 1; i < 5; i++) { var taskSpy = tasks[i][0]; expect(taskSpy).not.toHaveBeenCalled(); $$rAF.flush(); expect(taskSpy).toHaveBeenCalled(); } })); it('should space out subarrays by a RAF and run the internals in parallel', inject(function($$rAFScheduler, $$rAF) { var spies = { a: jasmine.createSpy(), b: jasmine.createSpy(), c: jasmine.createSpy(), x: jasmine.createSpy(), y: jasmine.createSpy(), z: jasmine.createSpy() }; var items = [[spies.a, spies.x], [spies.b, spies.y], [spies.c, spies.z]]; expect(spies.a).not.toHaveBeenCalled(); expect(spies.x).not.toHaveBeenCalled(); $$rAFScheduler(items); expect(spies.a).toHaveBeenCalled(); expect(spies.x).toHaveBeenCalled(); expect(spies.b).not.toHaveBeenCalled(); expect(spies.y).not.toHaveBeenCalled(); $$rAF.flush(); expect(spies.b).toHaveBeenCalled(); expect(spies.y).toHaveBeenCalled(); expect(spies.c).not.toHaveBeenCalled(); expect(spies.z).not.toHaveBeenCalled(); $$rAF.flush(); expect(spies.c).toHaveBeenCalled(); expect(spies.z).toHaveBeenCalled(); })); describe('.waitUntilQuiet', function() { it('should run the `last` provided function when a RAF fully passes', inject(function($$rAFScheduler, $$rAF) { var q1 = jasmine.createSpy(); $$rAFScheduler.waitUntilQuiet(q1); expect(q1).not.toHaveBeenCalled(); var q2 = jasmine.createSpy(); $$rAFScheduler.waitUntilQuiet(q2); expect(q1).not.toHaveBeenCalled(); expect(q2).not.toHaveBeenCalled(); var q3 = jasmine.createSpy(); $$rAFScheduler.waitUntilQuiet(q3); expect(q1).not.toHaveBeenCalled(); expect(q2).not.toHaveBeenCalled(); expect(q3).not.toHaveBeenCalled(); $$rAF.flush(); expect(q1).not.toHaveBeenCalled(); expect(q2).not.toHaveBeenCalled(); expect(q3).toHaveBeenCalled(); })); it('should always execute itself before the next RAF task tick occurs', function() { module(provideLog); inject(function($$rAFScheduler, $$rAF, log) { var quietFn = log.fn('quiet'); var tasks = [ [log.fn('task1')], [log.fn('task2')], [log.fn('task3')], [log.fn('task4')] ]; $$rAFScheduler(tasks); expect(log).toEqual(['task1']); $$rAFScheduler.waitUntilQuiet(quietFn); expect(log).toEqual(['task1']); $$rAF.flush(); expect(log).toEqual(['task1', 'quiet', 'task2']); $$rAF.flush(); expect(log).toEqual(['task1', 'quiet', 'task2', 'task3']); $$rAFScheduler.waitUntilQuiet(quietFn); $$rAF.flush(); expect(log).toEqual(['task1', 'quiet', 'task2', 'task3', 'quiet', 'task4']); }); }); }); });