/
rendering_spec.js
44 lines (34 loc) · 1.1 KB
/
rendering_spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
goog.module('test.clulib.animation.rendering');
const {listen} = goog.require('goog.events');
const {RenderLoop, RenderLoopEventType} = goog.require('clulib.animation.rendering');
const {waitFor} = goog.require('testing.async');
exports = function () {
describe('clulib.animation.rendering', () => {
describe('RenderLoop', () => {
it('should dispatch tick events', async () => {
const loop = new RenderLoop();
let started = false;
let ticked = false;
let ended = false;
let elapsedTime = 0;
listen(loop, RenderLoopEventType.START, () => {
started = true;
});
listen(loop, RenderLoopEventType.TICK, event => {
ticked = true;
elapsedTime = event.elapsedTime;
loop.stop();
});
listen(loop, RenderLoopEventType.END, () => {
ended = true;
});
loop.start();
await waitFor(1000);
expect(started).toBe(true);
expect(ticked).toBe(true);
expect(ended).toBe(true);
expect(elapsedTime > 0).toBe(true);
});
});
});
};