Files
openmct/platform/core/test/capabilities/MutationCapabilitySpec.js
Victor Woeltjen 222aa55dd7 [Core] Remove dependency
Remove  dependency from the mutation capability;
it recognizes and handles promises internally, instead.
WTD-931.
2015-03-11 17:38:40 -07:00

46 lines
1.5 KiB
JavaScript

/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
/**
* MutationCapabilitySpec. Created by vwoeltje on 11/6/14.
*/
define(
["../../src/capabilities/MutationCapability"],
function (MutationCapability) {
"use strict";
describe("The mutation capability", function () {
var testModel,
domainObject = { getModel: function () { return testModel; } },
mutation;
beforeEach(function () {
testModel = { number: 6 };
mutation = new MutationCapability(domainObject);
});
it("allows mutation of a model", function () {
mutation.invoke(function (m) {
m.number = m.number * 7;
});
expect(testModel.number).toEqual(42);
});
it("allows setting a model", function () {
mutation.invoke(function (m) {
return { someKey: "some value" };
});
expect(testModel.number).toBeUndefined();
expect(testModel.someKey).toEqual("some value");
});
it("allows model mutation to be aborted", function () {
mutation.invoke(function (m) {
m.number = m.number * 7;
return false; // Should abort change
});
// Number should not have been changed
expect(testModel.number).toEqual(6);
});
});
}
);