Add test case for pen state cloning

This commit is contained in:
Christopher Willis-Ford 2017-06-16 16:29:12 -07:00
parent 06d5994a32
commit 6275710e47
2 changed files with 19 additions and 1 deletions
test/integration

View file

@ -1,8 +1,11 @@
const path = require('path');
const test = require('tap').test;
const Scratch3PenBlocks = require('../../src/blocks/scratch3_pen');
const VirtualMachine = require('../../src/index');
const makeTestStorage = require('../fixtures/make-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
const uri = path.resolve(__dirname, '../fixtures/pen.sb2');
const project = extract(uri);
@ -14,6 +17,21 @@ test('pen', t => {
// Evaluate playground data and exit
vm.on('playgroundData', () => {
// @todo Additional tests
const catSprite = vm.runtime.targets[1].sprite;
const [originalCat, cloneCat] = catSprite.clones;
t.notStrictEqual(originalCat, cloneCat);
/** @type {PenState} */
const originalPenState = originalCat.getCustomState(Scratch3PenBlocks.STATE_KEY);
/** @type {PenState} */
const clonePenState = cloneCat.getCustomState(Scratch3PenBlocks.STATE_KEY);
t.notStrictEqual(originalPenState, clonePenState);
t.equal(originalPenState.penAttributes.diameter, 51);
t.equal(clonePenState.penAttributes.diameter, 42);
t.end();
process.nextTick(process.exit);
});