Add unit tests for new rename and delete cloud var functionality.

This commit is contained in:
Karishma Chadha 2018-11-20 19:56:45 -05:00
parent 25ce08131a
commit abbce00203
2 changed files with 147 additions and 0 deletions

View file

@ -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);

View file

@ -142,3 +142,50 @@ test('requestCreateVariable calls provider\'s createVariable function', t => {
t.strictEquals(mockVariable.isCloud, false);
t.end();
});
test('requestRenameVariable calls provider\'s renameVariable function', t => {
let renameVariableCalled = false;
let mockVarOldName;
let mockVarNewName;
const mockRenameVariable = (oldName, newName) => {
renameVariableCalled = true;
mockVarOldName = oldName;
mockVarNewName = newName;
return;
};
const provider = {
renameVariable: mockRenameVariable
};
const runtime = new Runtime();
const cloud = new Cloud(runtime);
cloud.setProvider(provider);
cloud.requestRenameVariable('my var', 'new var name');
t.equals(renameVariableCalled, true);
t.strictEquals(mockVarOldName, 'my var');
t.strictEquals(mockVarNewName, 'new var name');
t.end();
});
test('requestDeleteVariable calls provider\'s deleteVariable function', t => {
let deleteVariableCalled = false;
let mockVarName;
const mockDeleteVariable = name => {
deleteVariableCalled = true;
mockVarName = name;
return;
};
const provider = {
deleteVariable: mockDeleteVariable
};
const runtime = new Runtime();
const cloud = new Cloud(runtime);
cloud.setProvider(provider);
cloud.requestDeleteVariable('my var');
t.equals(deleteVariableCalled, true);
t.strictEquals(mockVarName, 'my var');
t.end();
});