mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-24 23:12:24 -05:00
2a60391fb4
These compatibility changes: - Use runtime.currentMSecs for the Clock timer "now" value - Start executing hats before other threads change values - Update test and fixtures to work with earlier hat execution - Add test for hat execution block order
37 lines
991 B
JavaScript
37 lines
991 B
JavaScript
const test = require('tap').test;
|
|
const Clock = require('../../src/io/clock');
|
|
const Runtime = require('../../src/engine/runtime');
|
|
|
|
test('spec', t => {
|
|
const rt = new Runtime();
|
|
const c = new Clock(rt);
|
|
|
|
t.type(Clock, 'function');
|
|
t.type(c, 'object');
|
|
t.type(c.projectTimer, 'function');
|
|
t.type(c.pause, 'function');
|
|
t.type(c.resume, 'function');
|
|
t.type(c.resetProjectTimer, 'function');
|
|
t.end();
|
|
});
|
|
|
|
test('cycle', t => {
|
|
const rt = new Runtime();
|
|
const c = new Clock(rt);
|
|
|
|
t.ok(c.projectTimer() <= 0.1);
|
|
setTimeout(() => {
|
|
c.resetProjectTimer();
|
|
setTimeout(() => {
|
|
// The timer shouldn't advance until all threads have been stepped
|
|
t.ok(c.projectTimer() === 0);
|
|
c.pause();
|
|
t.ok(c.projectTimer() === 0);
|
|
c.resume();
|
|
t.ok(c.projectTimer() === 0);
|
|
t.end();
|
|
}, 100);
|
|
}, 100);
|
|
rt._step();
|
|
t.ok(c.projectTimer() > 0);
|
|
});
|