Fix the monitor threads test. It was written before monitors could be loaded so was hand editing the monitorBlocks before loading the default project. The code I added to dispose was then clearing that out.

This commit is contained in:
picklesrus 2018-12-05 16:54:08 -05:00
parent d6acd97ec7
commit 694af40964
2 changed files with 2 additions and 36 deletions

BIN
test/fixtures/timer-monitor.sb3 vendored Normal file

Binary file not shown.

View file

@ -6,7 +6,7 @@ const VirtualMachine = require('../../src/index');
const Thread = require('../../src/engine/thread');
const Runtime = require('../../src/engine/runtime');
const projectUri = path.resolve(__dirname, '../fixtures/default.sb2');
const projectUri = path.resolve(__dirname, '../fixtures/timer-monitor.sb3');
const project = readFileToBuffer(projectUri);
const checkMonitorThreadPresent = (t, threads) => {
@ -14,15 +14,12 @@ const checkMonitorThreadPresent = (t, threads) => {
const monitorThread = threads[0];
t.equal(monitorThread.stackClick, false);
t.equal(monitorThread.updateMonitor, true);
t.equal(monitorThread.topBlock.toString(), 'sensing_timer');
t.equal(monitorThread.topBlock.toString(), 'timer');
};
/**
* Creates a monitor and then checks if it gets run every frame.
*/
/* TODO: when loadProject loads monitors, we can create a project with a monitor and will
* not have to do the create monitor step manually.
*/
test('monitor thread runs every frame', t => {
const vm = new VirtualMachine();
vm.attachStorage(makeTestStorage());
@ -31,22 +28,6 @@ test('monitor thread runs every frame', t => {
t.doesNotThrow(() => {
// Note: don't run vm.start(), we handle calling _step() manually in this test
vm.runtime.currentStepTime = Runtime.THREAD_STEP_INTERVAL;
// Manually populate the monitor block and set its isMonitored to true.
vm.runtime.monitorBlocks.createBlock({
id: 'sensing_timer',
opcode: 'sensing_timer',
inputs: {},
fields: {},
next: null,
topLevel: true,
parent: null,
shadow: false,
isMonitored: true,
x: '0',
y: '0'
});
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
@ -86,21 +67,6 @@ test('monitor thread not added twice', t => {
// Note: don't run vm.start(), we handle calling _step() manually in this test
vm.runtime.currentStepTime = 0;
// Manually populate the monitor block and set its isMonitored to true.
vm.runtime.monitorBlocks.createBlock({
id: 'sensing_timer',
opcode: 'sensing_timer',
inputs: {},
fields: {},
next: null,
topLevel: true,
parent: null,
shadow: false,
isMonitored: true,
x: '0',
y: '0'
});
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);