Add tests for existing vm.renameSprite functionality

This commit is contained in:
Paul Kaplan 2017-03-20 11:13:24 -04:00
parent b03768cad6
commit 627fc1d9c3

View file

@ -0,0 +1,51 @@
var test = require('tap').test;
var VirtualMachine = require('../../src/virtual-machine.js');
test('renameSprite throws when there is no sprite with that id', function (t) {
var vm = new VirtualMachine();
vm.runtime.getTargetById = () => null;
t.throws(
(() => vm.renameSprite('id', 'name')),
new Error('No target with the provided id.')
);
t.end();
});
test('renameSprite throws when used on a non-sprite target', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
isSprite: () => false
};
vm.runtime.getTargetById = () => (fakeTarget);
t.throws(
(() => vm.renameSprite('id', 'name')),
new Error('Cannot rename non-sprite targets.')
);
t.end();
});
test('renameSprite throws when there is no sprite for given target', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
sprite: null,
isSprite: () => true
};
vm.runtime.getTargetById = () => (fakeTarget);
t.throws(
(() => vm.renameSprite('id', 'name')),
new Error('No sprite associated with this target.')
);
t.end();
});
test('renameSprite sets the sprite name', function (t) {
var vm = new VirtualMachine();
var fakeTarget = {
sprite: {name: 'original'},
isSprite: () => true
};
vm.runtime.getTargetById = () => (fakeTarget);
vm.renameSprite('id', 'not-original');
t.equal(fakeTarget.sprite.name, 'not-original');
t.end();
});