mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-23 06:23:37 -05:00
Duplicating sprite should give new sprite a fresh name.
This commit is contained in:
parent
1f3c6ac6ad
commit
8c5c68b896
2 changed files with 22 additions and 2 deletions
|
@ -84,7 +84,7 @@ class Sprite {
|
||||||
|
|
||||||
newSprite.blocks = this.blocks.duplicate();
|
newSprite.blocks = this.blocks.duplicate();
|
||||||
|
|
||||||
const allNames = this.runtime.targets.map(t => t.name);
|
const allNames = this.runtime.targets.map(t => t.sprite.name);
|
||||||
newSprite.name = StringUtil.unusedName(this.name, allNames);
|
newSprite.name = StringUtil.unusedName(this.name, allNames);
|
||||||
|
|
||||||
const assetPromises = [];
|
const assetPromises = [];
|
||||||
|
|
|
@ -105,7 +105,7 @@ test('renameSprite does not increment when renaming to the same name', t => {
|
||||||
t.equal(vm.runtime.targets[0].sprite.name, 'foo');
|
t.equal(vm.runtime.targets[0].sprite.name, 'foo');
|
||||||
vm.renameSprite(target.id, 'foo');
|
vm.renameSprite(target.id, 'foo');
|
||||||
t.equal(vm.runtime.targets[0].sprite.name, 'foo');
|
t.equal(vm.runtime.targets[0].sprite.name, 'foo');
|
||||||
|
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -276,6 +276,26 @@ test('duplicateSprite duplicates a sprite when given id is associated with known
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('duplicateSprite assigns duplicated sprite a fresh name', t => {
|
||||||
|
const vm = new VirtualMachine();
|
||||||
|
const spr = new Sprite(null, vm.runtime);
|
||||||
|
spr.name = 'sprite1';
|
||||||
|
const currTarget = spr.createClone();
|
||||||
|
vm.editingTarget = currTarget;
|
||||||
|
|
||||||
|
vm.emitWorkspaceUpdate = () => null;
|
||||||
|
|
||||||
|
vm.runtime.targets = [currTarget];
|
||||||
|
t.equal(vm.runtime.targets.length, 1);
|
||||||
|
vm.duplicateSprite(currTarget.id).then(() => {
|
||||||
|
t.equal(vm.runtime.targets.length, 2);
|
||||||
|
t.equal(vm.runtime.targets[0].sprite.name, 'sprite1');
|
||||||
|
t.equal(vm.runtime.targets[1].sprite.name, 'sprite2');
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
test('emitWorkspaceUpdate', t => {
|
test('emitWorkspaceUpdate', t => {
|
||||||
const vm = new VirtualMachine();
|
const vm = new VirtualMachine();
|
||||||
vm.runtime.targets = [
|
vm.runtime.targets = [
|
||||||
|
|
Loading…
Reference in a new issue