openmct/platform/commonUI/edit/test/actions/PropertiesActionSpec.js

68 lines
2.3 KiB
JavaScript
Raw Normal View History

/*global define,describe,it,xit,expect,beforeEach*/
define(
['../../src/actions/PropertiesAction'],
function (PropertiesAction) {
"use strict";
describe("Properties action", function () {
var captured, model, object, context, input, dialogService, action;
function capture(k) { return function (v) { captured[k] = v; }; }
beforeEach(function () {
var capabilities = {
type: { getProperties: function () { return []; } },
persistence: {
persist: function () {
captured.persisted = true;
return promises.as(true);
}
},
mutation: {
mutate: function (c) {
captured.mutated = true;
return promises.as(c(model));
}
}
};
model = {};
input = {};
object = {
getId: function () { return 'test-id'; },
getCapability: function (k) {
return promises.as(capabilities[k]);
},
getModel: function () { return model; }
};
context = { someKey: "some value "};
dialogService = {
getUserInput: function () {
return promises.as(input);
}
};
captured = {};
action = new PropertiesAction(object, context, dialogService);
});
it("provides action metadata", function () {
var metadata = action.metadata();
expect(metadata.context).toEqual(context);
expect(metadata.category).toEqual('contextual');
});
it("persists when an action is performed", function () {
action.perform();
expect(captured.persisted).toBeTruthy();
});
it("does not persist any changes upon cancel", function () {
input = undefined;
action.perform();
expect(captured.persisted).toBeFalsy();
});
});
}
);