Use ES6 linting rules in the project root

Update all tests for `no-var` and `prefer-arrow-callback` (using `--fix`)
This commit is contained in:
Ray Schamp 2017-04-20 19:17:05 -04:00
parent 5f59d1e7e5
commit bafdf8d9f2
36 changed files with 666 additions and 666 deletions

View file

@ -1,3 +1,3 @@
module.exports = {
extends: ['scratch', 'scratch/node']
extends: ['scratch', 'scratch/node', 'scratch/es6']
};

View file

@ -1,15 +1,15 @@
var ScratchStorage = require('scratch-storage');
const ScratchStorage = require('scratch-storage');
var ASSET_SERVER = 'https://cdn.assets.scratch.mit.edu/';
var PROJECT_SERVER = 'https://cdn.projects.scratch.mit.edu/';
const ASSET_SERVER = 'https://cdn.assets.scratch.mit.edu/';
const PROJECT_SERVER = 'https://cdn.projects.scratch.mit.edu/';
/**
* @param {Asset} asset - calculate a URL for this asset.
* @returns {string} a URL to download a project file.
*/
var getProjectUrl = function (asset) {
var assetIdParts = asset.assetId.split('.');
var assetUrlParts = [PROJECT_SERVER, 'internalapi/project/', assetIdParts[0], '/get/'];
const getProjectUrl = function (asset) {
const assetIdParts = asset.assetId.split('.');
const assetUrlParts = [PROJECT_SERVER, 'internalapi/project/', assetIdParts[0], '/get/'];
if (assetIdParts[1]) {
assetUrlParts.push(assetIdParts[1]);
}
@ -20,8 +20,8 @@ var getProjectUrl = function (asset) {
* @param {Asset} asset - calculate a URL for this asset.
* @returns {string} a URL to download a project asset (PNG, WAV, etc.)
*/
var getAssetUrl = function (asset) {
var assetUrlParts = [
const getAssetUrl = function (asset) {
const assetUrlParts = [
ASSET_SERVER,
'internalapi/asset/',
asset.assetId,
@ -36,9 +36,9 @@ var getAssetUrl = function (asset) {
* Construct a new instance of ScratchStorage, provide it with default web sources, and attach it to the provided VM.
* @param {VirtualMachine} vm - the VM which will own the new ScratchStorage instance.
*/
var attachTestStorage = function (vm) {
var storage = new ScratchStorage();
var AssetType = storage.AssetType;
const attachTestStorage = function (vm) {
const storage = new ScratchStorage();
const AssetType = storage.AssetType;
storage.addWebSource([AssetType.Project], getProjectUrl);
storage.addWebSource([AssetType.ImageVector, AssetType.ImageBitmap, AssetType.Sound], getAssetUrl);
vm.attachStorage(storage);

View file

@ -1,6 +1,6 @@
var AdmZip = require('adm-zip');
const AdmZip = require('adm-zip');
module.exports = function (path) {
var zip = new AdmZip(path);
const zip = new AdmZip(path);
return zip.readAsText('project.json', 'utf8');
};

View file

@ -1,4 +1,4 @@
var FakeRenderer = function () {
const FakeRenderer = function () {
this.unused = '';
this.x = 0;
this.y = 0;

View file

@ -1,32 +1,32 @@
var fs = require('fs');
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const fs = require('fs');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var projectUri = path.resolve(__dirname, '../fixtures/complex.sb2');
var project = extract(projectUri);
const projectUri = path.resolve(__dirname, '../fixtures/complex.sb2');
const project = extract(projectUri);
var spriteUri = path.resolve(__dirname, '../fixtures/sprite.json');
var sprite = fs.readFileSync(spriteUri, 'utf8');
const spriteUri = path.resolve(__dirname, '../fixtures/sprite.json');
const sprite = fs.readFileSync(spriteUri, 'utf8');
test('complex', function (t) {
var vm = new VirtualMachine();
test('complex', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length === 0);
t.end();
process.nextTick(process.exit);
});
// Manipulate each target
vm.on('targetsUpdate', function (data) {
var targets = data.targetList;
for (var i in targets) {
vm.on('targetsUpdate', data => {
const targets = data.targetList;
for (const i in targets) {
if (targets[i].isStage === true) continue;
if (targets[i].name.match(/test/)) continue;
@ -55,12 +55,12 @@ test('complex', function (t) {
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// Post IO data
@ -89,7 +89,7 @@ test('complex', function (t) {
);
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,37 +1,37 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/control.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/control.sb2');
const project = extract(uri);
test('control', function (t) {
var vm = new VirtualMachine();
test('control', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length > 0);
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
});
});
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,34 +1,34 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/data.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/data.sb2');
const project = extract(uri);
test('data', function (t) {
var vm = new VirtualMachine();
test('data', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function () {
vm.on('playgroundData', () => {
// @todo Additional tests
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,35 +1,35 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/event.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/event.sb2');
const project = extract(uri);
test('event', function (t) {
var vm = new VirtualMachine();
test('event', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length > 0);
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,22 +1,22 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var projectUri = path.resolve(__dirname, '../fixtures/hat-execution-order.sb2');
var project = extract(projectUri);
const projectUri = path.resolve(__dirname, '../fixtures/hat-execution-order.sb2');
const project = extract(projectUri);
test('complex', function (t) {
var vm = new VirtualMachine();
test('complex', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length === 0);
var results = vm.runtime.targets[0].lists.results.contents;
const results = vm.runtime.targets[0].lists.results.contents;
t.deepEqual(results, ['3', '2', '1', 'stage']);
t.end();
@ -24,16 +24,16 @@ test('complex', function (t) {
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,26 +1,26 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
var renderedTarget = require('../../src/sprites/rendered-target');
var runtime = require('../../src/engine/runtime');
var sb2 = require('../../src/import/sb2import');
const renderedTarget = require('../../src/sprites/rendered-target');
const runtime = require('../../src/engine/runtime');
const sb2 = require('../../src/import/sb2import');
test('spec', function (t) {
test('spec', t => {
t.type(sb2, 'function');
t.end();
});
test('default', function (t) {
test('default', t => {
// Get SB2 JSON (string)
var uri = path.resolve(__dirname, '../fixtures/default.sb2');
var file = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/default.sb2');
const file = extract(uri);
// Create runtime instance & load SB2 into it
var rt = new runtime();
const rt = new runtime();
attachTestStorage(rt);
sb2(file, rt).then(function (targets) {
sb2(file, rt).then(targets => {
// Test
t.type(file, 'string');
t.type(rt, 'object');

View file

@ -1,35 +1,35 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/looks.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/looks.sb2');
const project = extract(uri);
test('looks', function (t) {
var vm = new VirtualMachine();
test('looks', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length === 0);
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,35 +1,35 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/motion.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/motion.sb2');
const project = extract(uri);
test('motion', function (t) {
var vm = new VirtualMachine();
test('motion', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length > 0);
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,34 +1,34 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/pen.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/pen.sb2');
const project = extract(uri);
test('pen', function (t) {
var vm = new VirtualMachine();
test('pen', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function () {
vm.on('playgroundData', () => {
// @todo Additional tests
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,35 +1,35 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/procedure.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/procedure.sb2');
const project = extract(uri);
test('procedure', function (t) {
var vm = new VirtualMachine();
test('procedure', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length === 0);
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,35 +1,35 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/sensing.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/sensing.sb2');
const project = extract(uri);
test('sensing', function (t) {
var vm = new VirtualMachine();
test('sensing', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length > 0);
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,35 +1,35 @@
var path = require('path');
var test = require('tap').test;
var attachTestStorage = require('../fixtures/attach-test-storage');
var extract = require('../fixtures/extract');
var VirtualMachine = require('../../src/index');
const path = require('path');
const test = require('tap').test;
const attachTestStorage = require('../fixtures/attach-test-storage');
const extract = require('../fixtures/extract');
const VirtualMachine = require('../../src/index');
var uri = path.resolve(__dirname, '../fixtures/sound.sb2');
var project = extract(uri);
const uri = path.resolve(__dirname, '../fixtures/sound.sb2');
const project = extract(uri);
test('sound', function (t) {
var vm = new VirtualMachine();
test('sound', t => {
const vm = new VirtualMachine();
attachTestStorage(vm);
// Evaluate playground data and exit
vm.on('playgroundData', function (e) {
var threads = JSON.parse(e.threads);
vm.on('playgroundData', e => {
const threads = JSON.parse(e.threads);
t.ok(threads.length > 0);
t.end();
process.nextTick(process.exit);
});
// Start VM, load project, and run
t.doesNotThrow(function () {
t.doesNotThrow(() => {
vm.start();
vm.clear();
vm.setCompatibilityMode(false);
vm.setTurboMode(false);
vm.loadProject(project).then(function () {
vm.loadProject(project).then(() => {
vm.greenFlag();
// After two seconds, get playground data and stop
setTimeout(function () {
setTimeout(() => {
vm.getPlaygroundData();
vm.stopAll();
}, 2000);

View file

@ -1,21 +1,21 @@
var test = require('tap').test;
var Control = require('../../src/blocks/scratch3_control');
var Runtime = require('../../src/engine/runtime');
const test = require('tap').test;
const Control = require('../../src/blocks/scratch3_control');
const Runtime = require('../../src/engine/runtime');
test('getPrimitives', function (t) {
var rt = new Runtime();
var c = new Control(rt);
test('getPrimitives', t => {
const rt = new Runtime();
const c = new Control(rt);
t.type(c.getPrimitives(), 'object');
t.end();
});
test('repeat', function (t) {
var rt = new Runtime();
var c = new Control(rt);
test('repeat', t => {
const rt = new Runtime();
const c = new Control(rt);
// Test harness (mocks `util`)
var i = 0;
var repeat = 10;
let i = 0;
const repeat = 10;
var util = {
stackFrame: Object.create(null),
startBranch: function () {
@ -31,13 +31,13 @@ test('repeat', function (t) {
t.end();
});
test('repeatUntil', function (t) {
var rt = new Runtime();
var c = new Control(rt);
test('repeatUntil', t => {
const rt = new Runtime();
const c = new Control(rt);
// Test harness (mocks `util`)
var i = 0;
var repeat = 10;
let i = 0;
const repeat = 10;
var util = {
stackFrame: Object.create(null),
startBranch: function () {
@ -52,13 +52,13 @@ test('repeatUntil', function (t) {
t.end();
});
test('forever', function (t) {
var rt = new Runtime();
var c = new Control(rt);
test('forever', t => {
const rt = new Runtime();
const c = new Control(rt);
// Test harness (mocks `util`)
var i = 0;
var util = {
let i = 0;
const util = {
startBranch: function (branchNum, isLoop) {
i++;
t.strictEqual(branchNum, 1);
@ -72,13 +72,13 @@ test('forever', function (t) {
t.end();
});
test('if / ifElse', function (t) {
var rt = new Runtime();
var c = new Control(rt);
test('if / ifElse', t => {
const rt = new Runtime();
const c = new Control(rt);
// Test harness (mocks `util`)
var i = 0;
var util = {
let i = 0;
const util = {
startBranch: function (branchNum) {
i += branchNum;
}
@ -96,17 +96,17 @@ test('if / ifElse', function (t) {
t.end();
});
test('stop', function (t) {
var rt = new Runtime();
var c = new Control(rt);
test('stop', t => {
const rt = new Runtime();
const c = new Control(rt);
// Test harness (mocks `util`)
var state = {
const state = {
stopAll: 0,
stopOtherTargetThreads: 0,
stopThisScript: 0
};
var util = {
const util = {
stopAll: function () {
state.stopAll++;
},

View file

@ -1,129 +1,129 @@
var test = require('tap').test;
var Operators = require('../../src/blocks/scratch3_operators');
const test = require('tap').test;
const Operators = require('../../src/blocks/scratch3_operators');
var blocks = new Operators(null);
const blocks = new Operators(null);
test('getPrimitives', function (t) {
test('getPrimitives', t => {
t.type(blocks.getPrimitives(), 'object');
t.end();
});
test('add', function (t) {
test('add', t => {
t.strictEqual(blocks.add({NUM1: '1', NUM2: '1'}), 2);
t.strictEqual(blocks.add({NUM1: 'foo', NUM2: 'bar'}), 0);
t.end();
});
test('subtract', function (t) {
test('subtract', t => {
t.strictEqual(blocks.subtract({NUM1: '1', NUM2: '1'}), 0);
t.strictEqual(blocks.subtract({NUM1: 'foo', NUM2: 'bar'}), 0);
t.end();
});
test('multiply', function (t) {
test('multiply', t => {
t.strictEqual(blocks.multiply({NUM1: '2', NUM2: '2'}), 4);
t.strictEqual(blocks.multiply({NUM1: 'foo', NUM2: 'bar'}), 0);
t.end();
});
test('divide', function (t) {
test('divide', t => {
t.strictEqual(blocks.divide({NUM1: '2', NUM2: '2'}), 1);
t.strictEqual(blocks.divide({NUM1: '1', NUM2: '0'}), Infinity); // @todo
t.ok(isNaN(blocks.divide({NUM1: 'foo', NUM2: 'bar'}))); // @todo
t.end();
});
test('lt', function (t) {
test('lt', t => {
t.strictEqual(blocks.lt({OPERAND1: '1', OPERAND2: '2'}), true);
t.strictEqual(blocks.lt({OPERAND1: '2', OPERAND2: '1'}), false);
t.strictEqual(blocks.lt({OPERAND1: '1', OPERAND2: '1'}), false);
t.end();
});
test('equals', function (t) {
test('equals', t => {
t.strictEqual(blocks.equals({OPERAND1: '1', OPERAND2: '2'}), false);
t.strictEqual(blocks.equals({OPERAND1: '2', OPERAND2: '1'}), false);
t.strictEqual(blocks.equals({OPERAND1: '1', OPERAND2: '1'}), true);
t.end();
});
test('gt', function (t) {
test('gt', t => {
t.strictEqual(blocks.gt({OPERAND1: '1', OPERAND2: '2'}), false);
t.strictEqual(blocks.gt({OPERAND1: '2', OPERAND2: '1'}), true);
t.strictEqual(blocks.gt({OPERAND1: '1', OPERAND2: '1'}), false);
t.end();
});
test('and', function (t) {
test('and', t => {
t.strictEqual(blocks.and({OPERAND1: true, OPERAND2: true}), true);
t.strictEqual(blocks.and({OPERAND1: true, OPERAND2: false}), false);
t.strictEqual(blocks.and({OPERAND1: false, OPERAND2: false}), false);
t.end();
});
test('or', function (t) {
test('or', t => {
t.strictEqual(blocks.or({OPERAND1: true, OPERAND2: true}), true);
t.strictEqual(blocks.or({OPERAND1: true, OPERAND2: false}), true);
t.strictEqual(blocks.or({OPERAND1: false, OPERAND2: false}), false);
t.end();
});
test('not', function (t) {
test('not', t => {
t.strictEqual(blocks.not({OPERAND: true}), false);
t.strictEqual(blocks.not({OPERAND: false}), true);
t.end();
});
test('random', function (t) {
var min = 0;
var max = 100;
var result = blocks.random({FROM: min, TO: max});
test('random', t => {
const min = 0;
const max = 100;
const result = blocks.random({FROM: min, TO: max});
t.ok(result >= min);
t.ok(result <= max);
t.end();
});
test('random - equal', function (t) {
var min = 1;
var max = 1;
test('random - equal', t => {
const min = 1;
const max = 1;
t.strictEqual(blocks.random({FROM: min, TO: max}), min);
t.end();
});
test('random - decimal', function (t) {
var min = 0.1;
var max = 10;
var result = blocks.random({FROM: min, TO: max});
test('random - decimal', t => {
const min = 0.1;
const max = 10;
const result = blocks.random({FROM: min, TO: max});
t.ok(result >= min);
t.ok(result <= max);
t.end();
});
test('random - int', function (t) {
var min = 0;
var max = 10;
var result = blocks.random({FROM: min, TO: max});
test('random - int', t => {
const min = 0;
const max = 10;
const result = blocks.random({FROM: min, TO: max});
t.ok(result >= min);
t.ok(result <= max);
t.end();
});
test('random - reverse', function (t) {
var min = 0;
var max = 10;
var result = blocks.random({FROM: max, TO: min});
test('random - reverse', t => {
const min = 0;
const max = 10;
const result = blocks.random({FROM: max, TO: min});
t.ok(result >= min);
t.ok(result <= max);
t.end();
});
test('join', function (t) {
test('join', t => {
t.strictEqual(blocks.join({STRING1: 'foo', STRING2: 'bar'}), 'foobar');
t.strictEqual(blocks.join({STRING1: '1', STRING2: '2'}), '12');
t.end();
});
test('letterOf', function (t) {
test('letterOf', t => {
t.strictEqual(blocks.letterOf({STRING: 'foo', LETTER: 0}), '');
t.strictEqual(blocks.letterOf({STRING: 'foo', LETTER: 1}), 'f');
t.strictEqual(blocks.letterOf({STRING: 'foo', LETTER: 2}), 'o');
@ -133,7 +133,7 @@ test('letterOf', function (t) {
t.end();
});
test('length', function (t) {
test('length', t => {
t.strictEqual(blocks.length({STRING: ''}), 0);
t.strictEqual(blocks.length({STRING: 'foo'}), 3);
t.strictEqual(blocks.length({STRING: '1'}), 1);
@ -141,21 +141,21 @@ test('length', function (t) {
t.end();
});
test('mod', function (t) {
test('mod', t => {
t.strictEqual(blocks.mod({NUM1: 1, NUM2: 1}), 0);
t.strictEqual(blocks.mod({NUM1: 3, NUM2: 6}), 3);
t.strictEqual(blocks.mod({NUM1: -3, NUM2: 6}), 3);
t.end();
});
test('round', function (t) {
test('round', t => {
t.strictEqual(blocks.round({NUM: 1}), 1);
t.strictEqual(blocks.round({NUM: 1.1}), 1);
t.strictEqual(blocks.round({NUM: 1.5}), 2);
t.end();
});
test('mathop', function (t) {
test('mathop', t => {
t.strictEqual(blocks.mathop({OPERATOR: 'abs', NUM: -1}), 1);
t.strictEqual(blocks.mathop({OPERATOR: 'floor', NUM: 1.5}), 1);
t.strictEqual(blocks.mathop({OPERATOR: 'ceiling', NUM: 0.1}), 1);

View file

@ -1,22 +1,22 @@
var test = require('tap').test;
var adapter = require('../../src/engine/adapter');
var events = require('../fixtures/events.json');
const test = require('tap').test;
const adapter = require('../../src/engine/adapter');
const events = require('../fixtures/events.json');
test('spec', function (t) {
test('spec', t => {
t.type(adapter, 'function');
t.end();
});
test('invalid inputs', function (t) {
var nothing = adapter('not an object');
test('invalid inputs', t => {
let nothing = adapter('not an object');
t.type(nothing, 'undefined');
nothing = adapter({noxmlproperty: true});
t.type(nothing, 'undefined');
t.end();
});
test('create event', function (t) {
var result = adapter(events.create);
test('create event', t => {
const result = adapter(events.create);
t.ok(Array.isArray(result));
t.equal(result.length, 2);
@ -43,8 +43,8 @@ test('create event', function (t) {
t.end();
});
test('create with branch', function (t) {
var result = adapter(events.createbranch);
test('create with branch', t => {
const result = adapter(events.createbranch);
// Outer block
t.type(result[0].id, 'string');
t.type(result[0].opcode, 'string');
@ -54,13 +54,13 @@ test('create with branch', function (t) {
t.type(result[0].topLevel, 'boolean');
t.equal(result[0].topLevel, true);
// In branch
var branchBlockId = result[0].inputs.SUBSTACK.block;
var branchShadowId = result[0].inputs.SUBSTACK.shadow;
const branchBlockId = result[0].inputs.SUBSTACK.block;
const branchShadowId = result[0].inputs.SUBSTACK.shadow;
t.type(branchBlockId, 'string');
t.equal(branchShadowId, null);
// Find actual branch block
var branchBlock = null;
for (var i = 0; i < result.length; i++) {
let branchBlock = null;
for (let i = 0; i < result.length; i++) {
if (result[i].id === branchBlockId) {
branchBlock = result[i];
}
@ -69,8 +69,8 @@ test('create with branch', function (t) {
t.end();
});
test('create with two branches', function (t) {
var result = adapter(events.createtwobranches);
test('create with two branches', t => {
const result = adapter(events.createtwobranches);
// Outer block
t.type(result[0].id, 'string');
t.type(result[0].opcode, 'string');
@ -81,18 +81,18 @@ test('create with two branches', function (t) {
t.type(result[0].topLevel, 'boolean');
t.equal(result[0].topLevel, true);
// In branchs
var firstBranchBlockId = result[0].inputs.SUBSTACK.block;
var secondBranchBlockId = result[0].inputs.SUBSTACK2.block;
const firstBranchBlockId = result[0].inputs.SUBSTACK.block;
const secondBranchBlockId = result[0].inputs.SUBSTACK2.block;
t.type(firstBranchBlockId, 'string');
t.type(secondBranchBlockId, 'string');
var firstBranchShadowBlockId = result[0].inputs.SUBSTACK.shadow;
var secondBranchShadowBlockId = result[0].inputs.SUBSTACK2.shadow;
const firstBranchShadowBlockId = result[0].inputs.SUBSTACK.shadow;
const secondBranchShadowBlockId = result[0].inputs.SUBSTACK2.shadow;
t.equal(firstBranchShadowBlockId, null);
t.equal(secondBranchShadowBlockId, null);
// Find actual branch blocks
var firstBranchBlock = null;
var secondBranchBlock = null;
for (var i = 0; i < result.length; i++) {
let firstBranchBlock = null;
let secondBranchBlock = null;
for (let i = 0; i < result.length; i++) {
if (result[i].id === firstBranchBlockId) {
firstBranchBlock = result[i];
}
@ -105,8 +105,8 @@ test('create with two branches', function (t) {
t.end();
});
test('create with top-level shadow', function (t) {
var result = adapter(events.createtoplevelshadow);
test('create with top-level shadow', t => {
const result = adapter(events.createtoplevelshadow);
t.ok(Array.isArray(result));
t.equal(result.length, 1);
@ -120,8 +120,8 @@ test('create with top-level shadow', function (t) {
t.end();
});
test('create with next connection', function (t) {
var result = adapter(events.createwithnext);
test('create with next connection', t => {
const result = adapter(events.createwithnext);
t.ok(Array.isArray(result));
t.equal(result.length, 2);
@ -148,21 +148,21 @@ test('create with next connection', function (t) {
t.end();
});
test('create with obscured shadow', function (t) {
var result = adapter(events.createobscuredshadow);
test('create with obscured shadow', t => {
const result = adapter(events.createobscuredshadow);
t.ok(Array.isArray(result));
t.equal(result.length, 4);
t.end();
});
test('create with invalid block xml', function (t) {
test('create with invalid block xml', t => {
// Entirely invalid block XML
var result = adapter(events.createinvalid);
const result = adapter(events.createinvalid);
t.ok(Array.isArray(result));
t.equal(result.length, 0);
// Invalid grandchild tag
var result2 = adapter(events.createinvalidgrandchild);
const result2 = adapter(events.createinvalidgrandchild);
t.ok(Array.isArray(result2));
t.equal(result2.length, 1);
t.type(result2[0].id, 'string');
@ -172,15 +172,15 @@ test('create with invalid block xml', function (t) {
t.end();
});
test('create with invalid xml', function (t) {
var result = adapter(events.createbadxml);
test('create with invalid xml', t => {
const result = adapter(events.createbadxml);
t.ok(Array.isArray(result));
t.equal(result.length, 0);
t.end();
});
test('create with empty field', function (t) {
var result = adapter(events.createemptyfield);
test('create with empty field', t => {
const result = adapter(events.createemptyfield);
t.ok(Array.isArray(result));
t.equal(result.length, 3);
t.end();

View file

@ -1,8 +1,8 @@
var test = require('tap').test;
var Blocks = require('../../src/engine/blocks');
const test = require('tap').test;
const Blocks = require('../../src/engine/blocks');
test('spec', function (t) {
var b = new Blocks();
test('spec', t => {
const b = new Blocks();
t.type(Blocks, 'function');
t.type(b, 'object');
@ -27,8 +27,8 @@ test('spec', function (t) {
});
// Getter tests
test('getBlock', function (t) {
var b = new Blocks();
test('getBlock', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -37,16 +37,16 @@ test('getBlock', function (t) {
inputs: {},
topLevel: true
});
var block = b.getBlock('foo');
const block = b.getBlock('foo');
t.type(block, 'object');
var notBlock = b.getBlock('?');
const notBlock = b.getBlock('?');
t.type(notBlock, 'undefined');
t.end();
});
test('getScripts', function (t) {
var b = new Blocks();
var scripts = b.getScripts();
test('getScripts', t => {
const b = new Blocks();
let scripts = b.getScripts();
t.type(scripts, 'object');
t.equals(scripts.length, 0);
// Create two top-level blocks and one not.
@ -85,8 +85,8 @@ test('getScripts', function (t) {
});
test('getNextBlock', function (t) {
var b = new Blocks();
test('getNextBlock', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -96,7 +96,7 @@ test('getNextBlock', function (t) {
topLevel: true
});
var next = b.getNextBlock('foo');
let next = b.getNextBlock('foo');
t.equals(next, null);
// Add a block with "foo" as its next.
@ -113,14 +113,14 @@ test('getNextBlock', function (t) {
t.equals(next, 'foo');
// Block that doesn't exist.
var noBlock = b.getNextBlock('?');
const noBlock = b.getNextBlock('?');
t.equals(noBlock, null);
t.end();
});
test('getBranch', function (t) {
var b = new Blocks();
test('getBranch', t => {
const b = new Blocks();
// Single branch
b.createBlock({
id: 'foo',
@ -145,17 +145,17 @@ test('getBranch', function (t) {
topLevel: false
});
var branch = b.getBranch('foo');
const branch = b.getBranch('foo');
t.equals(branch, 'foo2');
var notBranch = b.getBranch('?');
const notBranch = b.getBranch('?');
t.equals(notBranch, null);
t.end();
});
test('getBranch2', function (t) {
var b = new Blocks();
test('getBranch2', t => {
const b = new Blocks();
// Second branch
b.createBlock({
id: 'foo',
@ -193,16 +193,16 @@ test('getBranch2', function (t) {
topLevel: false
});
var branch1 = b.getBranch('foo', 1);
var branch2 = b.getBranch('foo', 2);
const branch1 = b.getBranch('foo', 1);
const branch2 = b.getBranch('foo', 2);
t.equals(branch1, 'foo2');
t.equals(branch2, 'foo3');
t.end();
});
test('getBranch with none', function (t) {
var b = new Blocks();
test('getBranch with none', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -211,14 +211,14 @@ test('getBranch with none', function (t) {
inputs: {},
topLevel: true
});
var noBranch = b.getBranch('foo');
const noBranch = b.getBranch('foo');
t.equals(noBranch, null);
t.end();
});
test('getOpcode', function (t) {
var b = new Blocks();
var block = {
test('getOpcode', t => {
const b = new Blocks();
const block = {
id: 'foo',
opcode: 'TEST_BLOCK',
next: null,
@ -227,17 +227,17 @@ test('getOpcode', function (t) {
topLevel: true
};
b.createBlock(block);
var opcode = b.getOpcode(block);
const opcode = b.getOpcode(block);
t.equals(opcode, 'TEST_BLOCK');
var undefinedBlock = b.getBlock('?');
var undefinedOpcode = b.getOpcode(undefinedBlock);
const undefinedBlock = b.getBlock('?');
const undefinedOpcode = b.getOpcode(undefinedBlock);
t.equals(undefinedOpcode, null);
t.end();
});
// Block events tests
test('create', function (t) {
var b = new Blocks();
test('create', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -253,8 +253,8 @@ test('create', function (t) {
t.end();
});
test('move', function (t) {
var b = new Blocks();
test('move', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -293,8 +293,8 @@ test('move', function (t) {
t.end();
});
test('move into empty', function (t) {
var b = new Blocks();
test('move into empty', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -320,8 +320,8 @@ test('move into empty', function (t) {
t.end();
});
test('move no obscure shadow', function (t) {
var b = new Blocks();
test('move no obscure shadow', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -354,8 +354,8 @@ test('move no obscure shadow', function (t) {
t.end();
});
test('change', function (t) {
var b = new Blocks();
test('change', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -411,8 +411,8 @@ test('change', function (t) {
t.end();
});
test('delete', function (t) {
var b = new Blocks();
test('delete', t => {
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -430,10 +430,10 @@ test('delete', function (t) {
t.end();
});
test('delete chain', function (t) {
test('delete chain', t => {
// Create a chain of connected blocks and delete the top one.
// All of them should be deleted.
var b = new Blocks();
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',
@ -470,10 +470,10 @@ test('delete chain', function (t) {
t.end();
});
test('delete inputs', function (t) {
test('delete inputs', t => {
// Create a block with two inputs, one of which has its own input.
// Delete the block - all of them should be deleted.
var b = new Blocks();
const b = new Blocks();
b.createBlock({
id: 'foo',
opcode: 'TEST_BLOCK',

View file

@ -1,8 +1,8 @@
var test = require('tap').test;
var Runtime = require('../../src/engine/runtime');
const test = require('tap').test;
const Runtime = require('../../src/engine/runtime');
test('spec', function (t) {
var r = new Runtime();
test('spec', t => {
const r = new Runtime();
t.type(Runtime, 'function');
t.type(r, 'object');

View file

@ -1,15 +1,15 @@
var test = require('tap').test;
var Sequencer = require('../../src/engine/sequencer');
var Runtime = require('../../src/engine/runtime');
var Thread = require('../../src/engine/thread');
var RenderedTarget = require('../../src/sprites/rendered-target');
var Sprite = require('../../src/sprites/sprite');
const test = require('tap').test;
const Sequencer = require('../../src/engine/sequencer');
const Runtime = require('../../src/engine/runtime');
const Thread = require('../../src/engine/thread');
const RenderedTarget = require('../../src/sprites/rendered-target');
const Sprite = require('../../src/sprites/sprite');
test('spec', function (t) {
test('spec', t => {
t.type(Sequencer, 'function');
var r = new Runtime();
var s = new Sequencer(r);
const r = new Runtime();
const s = new Sequencer(r);
t.type(s, 'object');
t.ok(s instanceof Sequencer);
@ -23,13 +23,13 @@ test('spec', function (t) {
t.end();
});
var randomString = function () {
var top = Math.random().toString(36);
const randomString = function () {
const top = Math.random().toString(36);
return top.substring(7);
};
var generateBlock = function (id) {
var block = {fields: Object,
const generateBlock = function (id) {
const block = {fields: Object,
id: id,
inputs: {},
STEPS: Object,
@ -47,8 +47,8 @@ var generateBlock = function (id) {
return block;
};
var generateBlockInput = function (id, next, inp) {
var block = {fields: Object,
const generateBlockInput = function (id, next, inp) {
const block = {fields: Object,
id: id,
inputs: {SUBSTACK: {block: inp, name: 'SUBSTACK'}},
STEPS: Object,
@ -66,20 +66,20 @@ var generateBlockInput = function (id, next, inp) {
return block;
};
var generateThread = function (runtime) {
var s = new Sprite();
var rt = new RenderedTarget(s, runtime);
var th = new Thread(randomString());
const generateThread = function (runtime) {
const s = new Sprite();
const rt = new RenderedTarget(s, runtime);
const th = new Thread(randomString());
var next = randomString();
var inp = randomString();
var name = th.topBlock;
let next = randomString();
let inp = randomString();
let name = th.topBlock;
rt.blocks.createBlock(generateBlockInput(name, next, inp));
th.pushStack(name);
rt.blocks.createBlock(generateBlock(inp));
for (var i = 0; i < 10; i++) {
for (let i = 0; i < 10; i++) {
name = next;
next = randomString();
inp = randomString();
@ -97,10 +97,10 @@ var generateThread = function (runtime) {
return th;
};
test('stepThread', function (t) {
var r = new Runtime();
var s = new Sequencer(r);
var th = generateThread(r);
test('stepThread', t => {
const r = new Runtime();
const s = new Sequencer(r);
let th = generateThread(r);
t.notEquals(th.status, Thread.STATUS_DONE);
s.stepThread(th);
t.strictEquals(th.status, Thread.STATUS_DONE);
@ -115,10 +115,10 @@ test('stepThread', function (t) {
t.end();
});
test('stepToBranch', function (t) {
var r = new Runtime();
var s = new Sequencer(r);
var th = generateThread(r);
test('stepToBranch', t => {
const r = new Runtime();
const s = new Sequencer(r);
const th = generateThread(r);
s.stepToBranch(th, 2, false);
t.strictEquals(th.peekStack(), null);
th.popStack();
@ -132,10 +132,10 @@ test('stepToBranch', function (t) {
t.end();
});
test('retireThread', function (t) {
var r = new Runtime();
var s = new Sequencer(r);
var th = generateThread(r);
test('retireThread', t => {
const r = new Runtime();
const s = new Sequencer(r);
const th = generateThread(r);
t.strictEquals(th.stack.length, 12);
s.retireThread(th);
t.strictEquals(th.stack.length, 0);
@ -144,11 +144,11 @@ test('retireThread', function (t) {
t.end();
});
test('stepToProcedure', function (t) {
var r = new Runtime();
var s = new Sequencer(r);
var th = generateThread(r);
var expectedBlock = th.peekStack();
test('stepToProcedure', t => {
const r = new Runtime();
const s = new Sequencer(r);
const th = generateThread(r);
let expectedBlock = th.peekStack();
s.stepToProcedure(th, '');
t.strictEquals(th.peekStack(), expectedBlock);
s.stepToProcedure(th, 'faceCode');
@ -163,10 +163,10 @@ test('stepToProcedure', function (t) {
t.end();
});
test('stepThreads', function (t) {
var r = new Runtime();
test('stepThreads', t => {
const r = new Runtime();
r.currentStepTime = Infinity;
var s = new Sequencer(r);
const s = new Sequencer(r);
t.strictEquals(s.stepThreads().length, 0);
generateThread(r);
t.strictEquals(r.threads.length, 1);

View file

@ -1,12 +1,12 @@
var test = require('tap').test;
var Thread = require('../../src/engine/thread');
var RenderedTarget = require('../../src/sprites/rendered-target');
var Sprite = require('../../src/sprites/sprite');
const test = require('tap').test;
const Thread = require('../../src/engine/thread');
const RenderedTarget = require('../../src/sprites/rendered-target');
const Sprite = require('../../src/sprites/sprite');
test('spec', function (t) {
test('spec', t => {
t.type(Thread, 'function');
var th = new Thread('arbitraryString');
const th = new Thread('arbitraryString');
t.type(th, 'object');
t.ok(th instanceof Thread);
t.type(th.pushStack, 'function');
@ -27,15 +27,15 @@ test('spec', function (t) {
t.end();
});
test('pushStack', function (t) {
var th = new Thread('arbitraryString');
test('pushStack', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
t.end();
});
test('popStack', function (t) {
var th = new Thread('arbitraryString');
test('popStack', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
t.strictEquals(th.popStack(), 'arbitraryString');
t.strictEquals(th.popStack(), undefined);
@ -43,8 +43,8 @@ test('popStack', function (t) {
t.end();
});
test('atStackTop', function (t) {
var th = new Thread('arbitraryString');
test('atStackTop', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
th.pushStack('secondString');
t.strictEquals(th.atStackTop(), false);
@ -54,8 +54,8 @@ test('atStackTop', function (t) {
t.end();
});
test('reuseStackForNextBlock', function (t) {
var th = new Thread('arbitraryString');
test('reuseStackForNextBlock', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
th.reuseStackForNextBlock('secondString');
t.strictEquals(th.popStack(), 'secondString');
@ -63,8 +63,8 @@ test('reuseStackForNextBlock', function (t) {
t.end();
});
test('peekStackFrame', function (t) {
var th = new Thread('arbitraryString');
test('peekStackFrame', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
t.strictEquals(th.peekStackFrame().warpMode, false);
th.popStack();
@ -73,8 +73,8 @@ test('peekStackFrame', function (t) {
t.end();
});
test('peekParentStackFrame', function (t) {
var th = new Thread('arbitraryString');
test('peekParentStackFrame', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
th.peekStackFrame().warpMode = true;
t.strictEquals(th.peekParentStackFrame(), null);
@ -84,8 +84,8 @@ test('peekParentStackFrame', function (t) {
t.end();
});
test('pushReportedValue', function (t) {
var th = new Thread('arbitraryString');
test('pushReportedValue', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
th.pushStack('secondString');
th.pushReportedValue('value');
@ -94,8 +94,8 @@ test('pushReportedValue', function (t) {
t.end();
});
test('peekStack', function (t) {
var th = new Thread('arbitraryString');
test('peekStack', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
t.strictEquals(th.peekStack(), 'arbitraryString');
th.popStack();
@ -104,8 +104,8 @@ test('peekStack', function (t) {
t.end();
});
test('PushGetParam', function (t) {
var th = new Thread('arbitraryString');
test('PushGetParam', t => {
const th = new Thread('arbitraryString');
th.pushStack('arbitraryString');
th.pushParam('testParam', 'testValue');
t.strictEquals(th.peekStackFrame().params.testParam, 'testValue');
@ -114,11 +114,11 @@ test('PushGetParam', function (t) {
t.end();
});
test('goToNextBlock', function (t) {
var th = new Thread('arbitraryString');
var s = new Sprite();
var rt = new RenderedTarget(s, null);
var block1 = {fields: Object,
test('goToNextBlock', t => {
const th = new Thread('arbitraryString');
const s = new Sprite();
const rt = new RenderedTarget(s, null);
const block1 = {fields: Object,
id: 'arbitraryString',
inputs: Object,
STEPS: Object,
@ -132,7 +132,7 @@ test('goToNextBlock', function (t) {
x: 0,
y: 0
};
var block2 = {fields: Object,
const block2 = {fields: Object,
id: 'secondString',
inputs: Object,
STEPS: Object,
@ -169,11 +169,11 @@ test('goToNextBlock', function (t) {
t.end();
});
test('stopThisScript', function (t) {
var th = new Thread('arbitraryString');
var s = new Sprite();
var rt = new RenderedTarget(s, null);
var block1 = {fields: Object,
test('stopThisScript', t => {
const th = new Thread('arbitraryString');
const s = new Sprite();
const rt = new RenderedTarget(s, null);
const block1 = {fields: Object,
id: 'arbitraryString',
inputs: Object,
STEPS: Object,
@ -187,7 +187,7 @@ test('stopThisScript', function (t) {
x: 0,
y: 0
};
var block2 = {fields: Object,
const block2 = {fields: Object,
id: 'secondString',
inputs: Object,
STEPS: Object,
@ -221,11 +221,11 @@ test('stopThisScript', function (t) {
t.end();
});
test('isRecursiveCall', function (t) {
var th = new Thread('arbitraryString');
var s = new Sprite();
var rt = new RenderedTarget(s, null);
var block1 = {fields: Object,
test('isRecursiveCall', t => {
const th = new Thread('arbitraryString');
const s = new Sprite();
const rt = new RenderedTarget(s, null);
const block1 = {fields: Object,
id: 'arbitraryString',
inputs: Object,
STEPS: Object,
@ -239,7 +239,7 @@ test('isRecursiveCall', function (t) {
x: 0,
y: 0
};
var block2 = {fields: Object,
const block2 = {fields: Object,
id: 'secondString',
inputs: Object,
STEPS: Object,

View file

@ -1,10 +1,10 @@
var test = require('tap').test;
var Clock = require('../../src/io/clock');
var Runtime = require('../../src/engine/runtime');
const test = require('tap').test;
const Clock = require('../../src/io/clock');
const Runtime = require('../../src/engine/runtime');
test('spec', function (t) {
var rt = new Runtime();
var c = new Clock(rt);
test('spec', t => {
const rt = new Runtime();
const c = new Clock(rt);
t.type(Clock, 'function');
t.type(c, 'object');
@ -15,14 +15,14 @@ test('spec', function (t) {
t.end();
});
test('cycle', function (t) {
var rt = new Runtime();
var c = new Clock(rt);
test('cycle', t => {
const rt = new Runtime();
const c = new Clock(rt);
t.ok(c.projectTimer() <= 0.1);
setTimeout(function () {
setTimeout(() => {
c.resetProjectTimer();
setTimeout(function () {
setTimeout(() => {
t.ok(c.projectTimer() > 0);
c.pause();
t.ok(c.projectTimer() > 0);

View file

@ -1,10 +1,10 @@
var test = require('tap').test;
var Keyboard = require('../../src/io/keyboard');
var Runtime = require('../../src/engine/runtime');
const test = require('tap').test;
const Keyboard = require('../../src/io/keyboard');
const Runtime = require('../../src/engine/runtime');
test('spec', function (t) {
var rt = new Runtime();
var k = new Keyboard(rt);
test('spec', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
t.type(k, 'object');
t.type(k.postData, 'function');
@ -12,9 +12,9 @@ test('spec', function (t) {
t.end();
});
test('space', function (t) {
var rt = new Runtime();
var k = new Keyboard(rt);
test('space', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 32,
@ -26,9 +26,9 @@ test('space', function (t) {
t.end();
});
test('letter', function (t) {
var rt = new Runtime();
var k = new Keyboard(rt);
test('letter', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 65,
@ -40,9 +40,9 @@ test('letter', function (t) {
t.end();
});
test('number', function (t) {
var rt = new Runtime();
var k = new Keyboard(rt);
test('number', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 49,
@ -54,9 +54,9 @@ test('number', function (t) {
t.end();
});
test('keyup', function (t) {
var rt = new Runtime();
var k = new Keyboard(rt);
test('keyup', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 37,

View file

@ -1,10 +1,10 @@
var test = require('tap').test;
var Mouse = require('../../src/io/mouse');
var Runtime = require('../../src/engine/runtime');
const test = require('tap').test;
const Mouse = require('../../src/io/mouse');
const Runtime = require('../../src/engine/runtime');
test('spec', function (t) {
var rt = new Runtime();
var m = new Mouse(rt);
test('spec', t => {
const rt = new Runtime();
const m = new Mouse(rt);
t.type(m, 'object');
t.type(m.postData, 'function');
@ -14,9 +14,9 @@ test('spec', function (t) {
t.end();
});
test('mouseUp', function (t) {
var rt = new Runtime();
var m = new Mouse(rt);
test('mouseUp', t => {
const rt = new Runtime();
const m = new Mouse(rt);
m.postData({
x: 1,
@ -31,9 +31,9 @@ test('mouseUp', function (t) {
t.end();
});
test('mouseDown', function (t) {
var rt = new Runtime();
var m = new Mouse(rt);
test('mouseDown', t => {
const rt = new Runtime();
const m = new Mouse(rt);
m.postData({
x: 10,

View file

@ -1,8 +1,8 @@
var test = require('tap').test;
var VirtualMachine = require('../../src/index');
const test = require('tap').test;
const VirtualMachine = require('../../src/index');
test('interface', function (t) {
var vm = new VirtualMachine();
test('interface', t => {
const vm = new VirtualMachine();
t.type(vm, 'object');
t.type(vm.start, 'function');
t.type(vm.greenFlag, 'function');

View file

@ -1,24 +1,24 @@
var test = require('tap').test;
var RenderedTarget = require('../../src/sprites/rendered-target');
var Sprite = require('../../src/sprites/sprite');
var Runtime = require('../../src/engine/runtime');
var FakeRenderer = require('../fixtures/fake-renderer');
const test = require('tap').test;
const RenderedTarget = require('../../src/sprites/rendered-target');
const Sprite = require('../../src/sprites/sprite');
const Runtime = require('../../src/engine/runtime');
const FakeRenderer = require('../fixtures/fake-renderer');
test('clone effects', function (t) {
test('clone effects', t => {
// Create two clones and ensure they have different graphic effect objects.
// Regression test for Github issue #224
var spr = new Sprite();
var a = new RenderedTarget(spr, null);
var b = new RenderedTarget(spr, null);
const spr = new Sprite();
const a = new RenderedTarget(spr, null);
const b = new RenderedTarget(spr, null);
t.ok(a.effects !== b.effects);
t.end();
});
test('setxy', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
test('setxy', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
a.setXY(123, 321, true);
t.equals(a.x, 123);
@ -26,54 +26,54 @@ test('setxy', function (t) {
t.end();
});
test('direction', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
test('direction', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
a.setDirection(123);
t.equals(a._getRenderedDirectionAndScale().direction, 123);
t.end();
});
test('setSay', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
test('setSay', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
a.setSay();
a.setSay('types not specified', 'message');
t.end();
});
test('setVisible', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
test('setVisible', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
a.setVisible(true);
t.end();
});
test('setSize', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
test('setSize', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
a.setSize(123);
t.equals(a._getRenderedDirectionAndScale().scale[0], 123);
t.end();
});
test('set and clear effects', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
test('set and clear effects', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
for (var effect in a.effects) {
a.setEffect(effect, 1);
@ -86,34 +86,34 @@ test('set and clear effects', function (t) {
t.end();
});
test('setCostume', function (t) {
var o = new Object();
var s = new Sprite();
var r = new Runtime();
test('setCostume', t => {
const o = new Object();
const s = new Sprite();
const r = new Runtime();
s.costumes = [o];
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
a.setCostume(0);
t.end();
});
test('setRotationStyle', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var renderer = new FakeRenderer();
test('setRotationStyle', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const renderer = new FakeRenderer();
a.renderer = renderer;
a.setRotationStyle(RenderedTarget.ROTATION_STYLE_NONE);
t.end();
});
test('getBounds', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
test('getBounds', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
t.equals(a.getBounds().top, 0);
a.setXY(241, 241);
@ -121,23 +121,23 @@ test('getBounds', function (t) {
t.end();
});
test('isTouchingPoint', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
test('isTouchingPoint', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
t.equals(a.isTouchingPoint(), true);
t.end();
});
test('isTouchingEdge', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
test('isTouchingEdge', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
t.equals(a.isTouchingEdge(), false);
a.setXY(1000, 1000);
@ -145,46 +145,46 @@ test('isTouchingEdge', function (t) {
t.end();
});
test('isTouchingSprite', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
test('isTouchingSprite', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
t.equals(a.isTouchingSprite('fake'), false);
t.end();
});
test('isTouchingColor', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
test('isTouchingColor', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
t.equals(a.isTouchingColor(), false);
t.end();
});
test('colorIsTouchingColor', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
test('colorIsTouchingColor', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
t.equals(a.colorIsTouchingColor(), false);
t.end();
});
test('layers', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
var o = new Object();
test('layers', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
const o = new Object();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
a.goToFront();
t.equals(a.renderer.order, 5);
@ -196,12 +196,12 @@ test('layers', function (t) {
t.end();
});
test('keepInFence', function (t) {
var s = new Sprite();
var r = new Runtime();
var renderer = new FakeRenderer();
test('keepInFence', t => {
const s = new Sprite();
const r = new Runtime();
const renderer = new FakeRenderer();
r.attachRenderer(renderer);
var a = new RenderedTarget(s, r);
const a = new RenderedTarget(s, r);
a.renderer = renderer;
t.equals(a.keepInFence(1000, 1000)[0], 240);
t.equals(a.keepInFence(-1000, 1000)[0], -240);
@ -210,40 +210,40 @@ test('keepInFence', function (t) {
t.end();
});
test('#stopAll clears graphics effects', function (t) {
var s = new Sprite();
var r = new Runtime();
var a = new RenderedTarget(s, r);
var effectName = 'brightness';
test('#stopAll clears graphics effects', t => {
const s = new Sprite();
const r = new Runtime();
const a = new RenderedTarget(s, r);
const effectName = 'brightness';
a.setEffect(effectName, 100);
a.onStopAll();
t.equals(a.effects[effectName], 0);
t.end();
});
test('#getCostumes returns the costumes', function (t) {
var spr = new Sprite();
var a = new RenderedTarget(spr, null);
var costumes = [1, 2, 3];
test('#getCostumes returns the costumes', t => {
const spr = new Sprite();
const a = new RenderedTarget(spr, null);
const costumes = [1, 2, 3];
a.sprite.costumes = costumes;
t.equals(a.getCostumes(), costumes);
t.end();
});
test('#getSounds returns the sounds', function (t) {
var spr = new Sprite();
var a = new RenderedTarget(spr, null);
var sounds = [1, 2, 3];
test('#getSounds returns the sounds', t => {
const spr = new Sprite();
const a = new RenderedTarget(spr, null);
const sounds = [1, 2, 3];
a.sprite.sounds = sounds;
t.equals(a.getSounds(), sounds);
t.end();
});
test('#toJSON returns the sounds and costumes', function (t) {
var spr = new Sprite();
var a = new RenderedTarget(spr, null);
var sounds = [1, 2, 3];
var costumes = ['a', 'b', 'c'];
test('#toJSON returns the sounds and costumes', t => {
const spr = new Sprite();
const a = new RenderedTarget(spr, null);
const sounds = [1, 2, 3];
const costumes = ['a', 'b', 'c'];
a.sprite.sounds = sounds;
a.sprite.costumes = costumes;
t.same(a.toJSON().sounds, sounds);

View file

@ -1,7 +1,7 @@
var test = require('tap').test;
var cast = require('../../src/util/cast');
const test = require('tap').test;
const cast = require('../../src/util/cast');
test('toNumber', function (t) {
test('toNumber', t => {
// Numeric
t.strictEqual(cast.toNumber(0), 0);
t.strictEqual(cast.toNumber(1), 1);
@ -27,7 +27,7 @@ test('toNumber', function (t) {
t.end();
});
test('toBoolean', function (t) {
test('toBoolean', t => {
// Numeric
t.strictEqual(cast.toBoolean(0), false);
t.strictEqual(cast.toBoolean(1), true);
@ -50,7 +50,7 @@ test('toBoolean', function (t) {
t.end();
});
test('toString', function (t) {
test('toString', t => {
// Numeric
t.strictEqual(cast.toString(0), '0');
t.strictEqual(cast.toString(1), '1');
@ -73,7 +73,7 @@ test('toString', function (t) {
t.end();
});
test('toRbgColorList', function (t) {
test('toRbgColorList', t => {
// Hex (minimal, see "color" util tests)
t.deepEqual(cast.toRgbColorList('#000'), [0, 0, 0]);
t.deepEqual(cast.toRgbColorList('#000000'), [0, 0, 0]);
@ -91,7 +91,7 @@ test('toRbgColorList', function (t) {
t.end();
});
test('toRbgColorObject', function (t) {
test('toRbgColorObject', t => {
// Hex (minimal, see "color" util tests)
t.deepEqual(cast.toRgbColorObject('#000'), {r: 0, g: 0, b: 0});
t.deepEqual(cast.toRgbColorObject('#000000'), {r: 0, g: 0, b: 0});
@ -110,7 +110,7 @@ test('toRbgColorObject', function (t) {
t.end();
});
test('compare', function (t) {
test('compare', t => {
// Numeric
t.strictEqual(cast.compare(0, 0), 0);
t.strictEqual(cast.compare(1, 0), 1);
@ -137,7 +137,7 @@ test('compare', function (t) {
t.end();
});
test('isInt', function (t) {
test('isInt', t => {
// Numeric
t.strictEqual(cast.isInt(0), true);
t.strictEqual(cast.isInt(1), true);
@ -162,9 +162,9 @@ test('isInt', function (t) {
t.end();
});
test('toListIndex', function (t) {
var list = [0, 1, 2, 3, 4, 5];
var empty = [];
test('toListIndex', t => {
const list = [0, 1, 2, 3, 4, 5];
const empty = [];
// Valid
t.strictEqual(cast.toListIndex(1, list.length), 1);
@ -184,13 +184,13 @@ test('toListIndex', function (t) {
t.strictEqual(cast.toListIndex('last', empty.length), cast.LIST_INVALID);
// "random"
var random = cast.toListIndex('random', list.length);
const random = cast.toListIndex('random', list.length);
t.ok(random <= list.length);
t.ok(random > 0);
t.strictEqual(cast.toListIndex('random', empty.length), cast.LIST_INVALID);
// "any" (alias for "random")
var any = cast.toListIndex('any', list.length);
const any = cast.toListIndex('any', list.length);
t.ok(any <= list.length);
t.ok(any > 0);
t.strictEqual(cast.toListIndex('any', empty.length), cast.LIST_INVALID);

View file

@ -1,5 +1,5 @@
var test = require('tap').test;
var color = require('../../src/util/color');
const test = require('tap').test;
const color = require('../../src/util/color');
/**
* Assert that two HSV colors are similar to each other, within a tolerance.
@ -7,7 +7,7 @@ var color = require('../../src/util/color');
* @param {HSVObject} actual - the first HSV color to compare.
* @param {HSVObject} expected - the other HSV color to compare.
*/
var hsvSimilar = function (t, actual, expected) {
const hsvSimilar = function (t, actual, expected) {
if ((Math.abs(actual.h - expected.h) >= 1) ||
(Math.abs(actual.s - expected.s) >= 0.01) ||
(Math.abs(actual.v - expected.v) >= 0.01)
@ -25,7 +25,7 @@ var hsvSimilar = function (t, actual, expected) {
* @param {RGBObject} actual - the first RGB color to compare.
* @param {RGBObject} expected - the other RGB color to compare.
*/
var rgbSimilar = function (t, actual, expected) {
const rgbSimilar = function (t, actual, expected) {
if ((Math.abs(actual.r - expected.r) >= 1) ||
(Math.abs(actual.g - expected.g) >= 1) ||
(Math.abs(actual.b - expected.b) >= 1)
@ -37,7 +37,7 @@ var rgbSimilar = function (t, actual, expected) {
}
};
test('decimalToHex', function (t) {
test('decimalToHex', t => {
t.strictEqual(color.decimalToHex(0), '#000000');
t.strictEqual(color.decimalToHex(1), '#000001');
t.strictEqual(color.decimalToHex(16777215), '#ffffff');
@ -46,7 +46,7 @@ test('decimalToHex', function (t) {
t.end();
});
test('decimalToRgb', function (t) {
test('decimalToRgb', t => {
t.deepEqual(color.decimalToRgb(0), {a: 255, r: 0, g: 0, b: 0});
t.deepEqual(color.decimalToRgb(1), {a: 255, r: 0, g: 0, b: 1});
t.deepEqual(color.decimalToRgb(16777215), {a: 255, r: 255, g: 255, b: 255});
@ -55,7 +55,7 @@ test('decimalToRgb', function (t) {
t.end();
});
test('hexToRgb', function (t) {
test('hexToRgb', t => {
t.deepEqual(color.hexToRgb('#000'), {r: 0, g: 0, b: 0});
t.deepEqual(color.hexToRgb('#000000'), {r: 0, g: 0, b: 0});
t.deepEqual(color.hexToRgb('#fff'), {r: 255, g: 255, b: 255});
@ -73,21 +73,21 @@ test('hexToRgb', function (t) {
t.end();
});
test('rgbToHex', function (t) {
test('rgbToHex', t => {
t.strictEqual(color.rgbToHex({r: 0, g: 0, b: 0}), '#000000');
t.strictEqual(color.rgbToHex({r: 255, g: 255, b: 255}), '#ffffff');
t.strictEqual(color.rgbToHex({r: 0, g: 255, b: 170}), '#00ffaa');
t.end();
});
test('rgbToDecimal', function (t) {
test('rgbToDecimal', t => {
t.strictEqual(color.rgbToDecimal({r: 0, g: 0, b: 0}), 0);
t.strictEqual(color.rgbToDecimal({r: 255, g: 255, b: 255}), 16777215);
t.strictEqual(color.rgbToDecimal({r: 0, g: 255, b: 170}), 65450);
t.end();
});
test('hexToDecimal', function (t) {
test('hexToDecimal', t => {
t.strictEqual(color.hexToDecimal('#000'), 0);
t.strictEqual(color.hexToDecimal('#000000'), 0);
t.strictEqual(color.hexToDecimal('#fff'), 16777215);
@ -97,7 +97,7 @@ test('hexToDecimal', function (t) {
t.end();
});
test('hsvToRgb', function (t) {
test('hsvToRgb', t => {
rgbSimilar(t, color.hsvToRgb({h: 0, s: 0, v: 0}), {r: 0, g: 0, b: 0});
rgbSimilar(t, color.hsvToRgb({h: 123, s: 0.1234, v: 0}), {r: 0, g: 0, b: 0});
rgbSimilar(t, color.hsvToRgb({h: 0, s: 0, v: 1}), {r: 255, g: 255, b: 255});
@ -108,7 +108,7 @@ test('hsvToRgb', function (t) {
t.end();
});
test('rgbToHsv', function (t) {
test('rgbToHsv', t => {
hsvSimilar(t, color.rgbToHsv({r: 0, g: 0, b: 0}), {h: 0, s: 0, v: 0});
hsvSimilar(t, color.rgbToHsv({r: 64, g: 64, b: 64}), {h: 0, s: 0, v: 0.25});
hsvSimilar(t, color.rgbToHsv({r: 128, g: 128, b: 128}), {h: 0, s: 0, v: 0.5});
@ -120,7 +120,7 @@ test('rgbToHsv', function (t) {
t.end();
});
test('mixRgb', function (t) {
test('mixRgb', t => {
rgbSimilar(t, color.mixRgb({r: 10, g: 20, b: 30}, {r: 30, g: 40, b: 50}, -1), {r: 10, g: 20, b: 30});
rgbSimilar(t, color.mixRgb({r: 10, g: 20, b: 30}, {r: 30, g: 40, b: 50}, 0), {r: 10, g: 20, b: 30});
rgbSimilar(t, color.mixRgb({r: 10, g: 20, b: 30}, {r: 30, g: 40, b: 50}, 0.25), {r: 15, g: 25, b: 35});

View file

@ -1,7 +1,7 @@
var test = require('tap').test;
var math = require('../../src/util/math-util');
const test = require('tap').test;
const math = require('../../src/util/math-util');
test('degToRad', function (t) {
test('degToRad', t => {
t.strictEqual(math.degToRad(0), 0);
t.strictEqual(math.degToRad(1), 0.017453292519943295);
t.strictEqual(math.degToRad(180), Math.PI);
@ -10,7 +10,7 @@ test('degToRad', function (t) {
t.end();
});
test('radToDeg', function (t) {
test('radToDeg', t => {
t.strictEqual(math.radToDeg(0), 0);
t.strictEqual(math.radToDeg(1), 57.29577951308232);
t.strictEqual(math.radToDeg(180), 10313.240312354817);
@ -19,7 +19,7 @@ test('radToDeg', function (t) {
t.end();
});
test('clamp', function (t) {
test('clamp', t => {
t.strictEqual(math.clamp(0, 0, 10), 0);
t.strictEqual(math.clamp(1, 0, 10), 1);
t.strictEqual(math.clamp(-10, 0, 10), 0);
@ -27,7 +27,7 @@ test('clamp', function (t) {
t.end();
});
test('wrapClamp', function (t) {
test('wrapClamp', t => {
t.strictEqual(math.wrapClamp(0, 0, 10), 0);
t.strictEqual(math.wrapClamp(1, 0, 10), 1);
t.strictEqual(math.wrapClamp(-10, 0, 10), 1);
@ -35,7 +35,7 @@ test('wrapClamp', function (t) {
t.end();
});
test('tan', function (t) {
test('tan', t => {
t.strictEqual(math.tan(90), Infinity);
t.strictEqual(math.tan(180), 0);
t.strictEqual(math.tan(-90), -Infinity);

View file

@ -1,7 +1,7 @@
var test = require('tap').test;
var StringUtil = require('../../src/util/string-util');
const test = require('tap').test;
const StringUtil = require('../../src/util/string-util');
test('withoutTrailingDigits', function (t) {
test('withoutTrailingDigits', t => {
t.strictEqual(StringUtil.withoutTrailingDigits('boeing747'), 'boeing');
t.strictEqual(StringUtil.withoutTrailingDigits('boeing747 '), 'boeing747 ');
t.strictEqual(StringUtil.withoutTrailingDigits('boeing𝟨'), 'boeing𝟨');
@ -10,7 +10,7 @@ test('withoutTrailingDigits', function (t) {
t.end();
});
test('unusedName', function (t) {
test('unusedName', t => {
t.strictEqual(
StringUtil.unusedName(
'name',

View file

@ -1,8 +1,8 @@
var test = require('tap').test;
var Timer = require('../../src/util/timer');
const test = require('tap').test;
const Timer = require('../../src/util/timer');
test('spec', function (t) {
var timer = new Timer();
test('spec', t => {
const timer = new Timer();
t.type(Timer, 'function');
t.type(timer, 'object');
@ -15,25 +15,25 @@ test('spec', function (t) {
t.end();
});
test('time', function (t) {
var timer = new Timer();
var time = timer.time();
test('time', t => {
const timer = new Timer();
const time = timer.time();
t.ok(Date.now() >= time);
t.end();
});
test('start / timeElapsed', function (t) {
var timer = new Timer();
var delay = 100;
var threshold = 1000 / 60; // 60 hz
test('start / timeElapsed', t => {
const timer = new Timer();
const delay = 100;
const threshold = 1000 / 60; // 60 hz
// Start timer
timer.start();
// Wait and measure timer
setTimeout(function () {
var timeElapsed = timer.timeElapsed();
setTimeout(() => {
const timeElapsed = timer.timeElapsed();
t.ok(timeElapsed >= 0);
t.ok(timeElapsed >= (delay - threshold) &&
timeElapsed <= (delay + threshold));

View file

@ -1,9 +1,9 @@
var test = require('tap').test;
var xml = require('../../src/util/xml-escape');
const test = require('tap').test;
const xml = require('../../src/util/xml-escape');
test('escape', function (t) {
var input = '<foo bar="he & llo \'"></foo>';
var output = '&lt;foo bar=&quot;he &amp; llo &apos;&quot;&gt;&lt;/foo&gt;';
test('escape', t => {
const input = '<foo bar="he & llo \'"></foo>';
const output = '&lt;foo bar=&quot;he &amp; llo &apos;&quot;&gt;&lt;/foo&gt;';
t.strictEqual(xml(input), output);
t.end();
});

View file

@ -1,8 +1,8 @@
var test = require('tap').test;
var VirtualMachine = require('../../src/virtual-machine.js');
const test = require('tap').test;
const VirtualMachine = require('../../src/virtual-machine.js');
test('renameSprite throws when there is no sprite with that id', function (t) {
var vm = new VirtualMachine();
test('renameSprite throws when there is no sprite with that id', t => {
const vm = new VirtualMachine();
vm.runtime.getTargetById = () => null;
t.throws(
(() => vm.renameSprite('id', 'name')),
@ -11,9 +11,9 @@ test('renameSprite throws when there is no sprite with that id', function (t) {
t.end();
});
test('renameSprite throws when used on a non-sprite target', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
test('renameSprite throws when used on a non-sprite target', t => {
const vm = new VirtualMachine();
const fakeTarget = {
isSprite: () => false
};
vm.runtime.getTargetById = () => (fakeTarget);
@ -24,9 +24,9 @@ test('renameSprite throws when used on a non-sprite target', function (t) {
t.end();
});
test('renameSprite throws when there is no sprite for given target', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
test('renameSprite throws when there is no sprite for given target', t => {
const vm = new VirtualMachine();
const fakeTarget = {
sprite: null,
isSprite: () => true
};
@ -38,9 +38,9 @@ test('renameSprite throws when there is no sprite for given target', function (t
t.end();
});
test('renameSprite sets the sprite name', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
test('renameSprite sets the sprite name', t => {
const vm = new VirtualMachine();
const fakeTarget = {
sprite: {name: 'original'},
isSprite: () => true
};
@ -50,9 +50,9 @@ test('renameSprite sets the sprite name', function (t) {
t.end();
});
test('renameSprite does not set sprite names to an empty string', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
test('renameSprite does not set sprite names to an empty string', t => {
const vm = new VirtualMachine();
const fakeTarget = {
sprite: {name: 'original'},
isSprite: () => true
};
@ -62,9 +62,9 @@ test('renameSprite does not set sprite names to an empty string', function (t) {
t.end();
});
test('renameSprite does not set sprite names to reserved names', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
test('renameSprite does not set sprite names to reserved names', t => {
const vm = new VirtualMachine();
const fakeTarget = {
sprite: {name: 'original'},
isSprite: () => true
};
@ -74,8 +74,8 @@ test('renameSprite does not set sprite names to reserved names', function (t) {
t.end();
});
test('renameSprite increments from existing sprite names', function (t) {
var vm = new VirtualMachine();
test('renameSprite increments from existing sprite names', t => {
const vm = new VirtualMachine();
vm.emitTargetsUpdate = () => {};
vm.runtime.targets = [{
id: 'id1',

View file

@ -1,9 +1,9 @@
var CopyWebpackPlugin = require('copy-webpack-plugin');
var defaultsDeep = require('lodash.defaultsdeep');
var path = require('path');
var webpack = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const defaultsDeep = require('lodash.defaultsdeep');
const path = require('path');
const webpack = require('webpack');
var base = {
const base = {
devServer: {
contentBase: false,
host: '0.0.0.0',