mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2025-08-14 15:28:50 -04:00
Add unit tests for new rename and delete cloud var functionality.
This commit is contained in:
parent
25ce08131a
commit
abbce00203
2 changed files with 147 additions and 0 deletions
test/unit
|
@ -177,6 +177,61 @@ test('renameVariable3', t => {
|
|||
t.end();
|
||||
});
|
||||
|
||||
test('renameVariable calls cloud io device\'s requestRenameVariable function', t => {
|
||||
const runtime = new Runtime();
|
||||
|
||||
let requestRenameVariableWasCalled = false;
|
||||
runtime.ioDevices.cloud.requestRenameVariable = () => {
|
||||
requestRenameVariableWasCalled = true;
|
||||
};
|
||||
|
||||
const target = new Target(runtime);
|
||||
target.isStage = true;
|
||||
const mockCloudVar = new Variable('foo', 'bar', Variable.SCALAR_TYPE, true);
|
||||
target.variables[mockCloudVar.id] = mockCloudVar;
|
||||
runtime.targets.push(target);
|
||||
|
||||
target.renameVariable('foo', 'bar2');
|
||||
|
||||
const variables = target.variables;
|
||||
t.equal(Object.keys(variables).length, 1);
|
||||
const variable = variables[Object.keys(variables)[0]];
|
||||
t.equal(variable.id, 'foo');
|
||||
t.equal(variable.name, 'bar2');
|
||||
t.equal(variable.value, 0);
|
||||
t.equal(variable.isCloud, true);
|
||||
t.equal(requestRenameVariableWasCalled, true);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('renameVariable does not call cloud io device\'s requestRenameVariable function if target is not stage', t => {
|
||||
const runtime = new Runtime();
|
||||
|
||||
let requestRenameVariableWasCalled = false;
|
||||
runtime.ioDevices.cloud.requestRenameVariable = () => {
|
||||
requestRenameVariableWasCalled = true;
|
||||
};
|
||||
|
||||
const target = new Target(runtime);
|
||||
const mockCloudVar = new Variable('foo', 'bar', Variable.SCALAR_TYPE, true);
|
||||
target.variables[mockCloudVar.id] = mockCloudVar;
|
||||
runtime.targets.push(target);
|
||||
|
||||
target.renameVariable('foo', 'bar2');
|
||||
|
||||
const variables = target.variables;
|
||||
t.equal(Object.keys(variables).length, 1);
|
||||
const variable = variables[Object.keys(variables)[0]];
|
||||
t.equal(variable.id, 'foo');
|
||||
t.equal(variable.name, 'bar2');
|
||||
t.equal(variable.value, 0);
|
||||
t.equal(variable.isCloud, true);
|
||||
t.equal(requestRenameVariableWasCalled, false);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
// Delete Variable tests.
|
||||
test('deleteVariable', t => {
|
||||
const target = new Target();
|
||||
|
@ -200,6 +255,51 @@ test('deleteVariable2', t => {
|
|||
t.end();
|
||||
});
|
||||
|
||||
test('deleteVariable calls cloud io device\'s requestRenameVariable function', t => {
|
||||
const runtime = new Runtime();
|
||||
|
||||
let requestDeleteVariableWasCalled = false;
|
||||
runtime.ioDevices.cloud.requestDeleteVariable = () => {
|
||||
requestDeleteVariableWasCalled = true;
|
||||
};
|
||||
|
||||
const target = new Target(runtime);
|
||||
target.isStage = true;
|
||||
const mockCloudVar = new Variable('foo', 'bar', Variable.SCALAR_TYPE, true);
|
||||
target.variables[mockCloudVar.id] = mockCloudVar;
|
||||
runtime.targets.push(target);
|
||||
|
||||
target.deleteVariable('foo');
|
||||
|
||||
const variables = target.variables;
|
||||
t.equal(Object.keys(variables).length, 0);
|
||||
t.equal(requestDeleteVariableWasCalled, true);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('deleteVariable calls cloud io device\'s requestRenameVariable function', t => {
|
||||
const runtime = new Runtime();
|
||||
|
||||
let requestDeleteVariableWasCalled = false;
|
||||
runtime.ioDevices.cloud.requestDeleteVariable = () => {
|
||||
requestDeleteVariableWasCalled = true;
|
||||
};
|
||||
|
||||
const target = new Target(runtime);
|
||||
const mockCloudVar = new Variable('foo', 'bar', Variable.SCALAR_TYPE, true);
|
||||
target.variables[mockCloudVar.id] = mockCloudVar;
|
||||
runtime.targets.push(target);
|
||||
|
||||
target.deleteVariable('foo');
|
||||
|
||||
const variables = target.variables;
|
||||
t.equal(Object.keys(variables).length, 0);
|
||||
t.equal(requestDeleteVariableWasCalled, false);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('duplicateVariable creates a new variable with a new ID by default', t => {
|
||||
const target = new Target();
|
||||
target.createVariable('a var ID', 'foo', Variable.SCALAR_TYPE);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue