From 6d90a34ff14019c9997b29a40a2aed45902c3e85 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Thu, 28 Dec 2017 12:31:23 -0500 Subject: [PATCH] Add setDragMode primitive and unit test --- src/blocks/scratch3_sensing.js | 2 +- test/unit/blocks_sensing.js | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/blocks/scratch3_sensing.js b/src/blocks/scratch3_sensing.js index 0ee1286eb..4f977a612 100644 --- a/src/blocks/scratch3_sensing.js +++ b/src/blocks/scratch3_sensing.js @@ -164,7 +164,7 @@ class Scratch3SensingBlocks { } setDragMode (args, util) { - util.target.draggable = args.DRAG_MODE === 'draggable'; + util.target.setDraggable(args.DRAG_MODE === 'draggable'); } getTimer (args, util) { diff --git a/test/unit/blocks_sensing.js b/test/unit/blocks_sensing.js index 221742b99..33b484466 100644 --- a/test/unit/blocks_sensing.js +++ b/test/unit/blocks_sensing.js @@ -1,6 +1,8 @@ const test = require('tap').test; const Sensing = require('../../src/blocks/scratch3_sensing'); const Runtime = require('../../src/engine/runtime'); +const Sprite = require('../../src/sprites/sprite'); +const RenderedTarget = require('../../src/sprites/rendered-target'); test('getPrimitives', t => { const rt = new Runtime(); @@ -67,15 +69,17 @@ test('ask and answer with a visible target', t => { }); test('set drag mode', t => { - const rt = new Runtime(); - const s = new Sensing(rt); - const util = {target: {draggable: true}}; + const runtime = new Runtime(); + runtime.requestTargetsUpdate = () => {}; // noop for testing + const sensing = new Sensing(runtime); + const s = new Sprite(); + const rt = new RenderedTarget(s, runtime); - s.setDragMode({DRAG_MODE: 'not draggable'}, util); - t.strictEqual(util.target.draggable, false); + sensing.setDragMode({DRAG_MODE: 'not draggable'}, {target: rt}); + t.strictEqual(rt.draggable, false); - s.setDragMode({DRAG_MODE: 'draggable'}, util); - t.strictEqual(util.target.draggable, true); + sensing.setDragMode({DRAG_MODE: 'draggable'}, {target: rt}); + t.strictEqual(rt.draggable, true); t.end(); });