mirror of
https://github.com/nasa/openmct.git
synced 2025-02-23 10:30:29 +00:00
[Actions] Update specs
Update specs for actions which change domain objects to reflect their restriction to types that are creatable, WTD-723.
This commit is contained in:
parent
4c42d4de28
commit
aa9ceeb2be
@ -81,7 +81,7 @@ define(
|
||||
var object = (context || {}).domainObject,
|
||||
contextCapability = object && object.getCapability("context"),
|
||||
parent = contextCapability && contextCapability.getParent(),
|
||||
parentType = parent.getCapability('type'),
|
||||
parentType = parent && parent.getCapability('type'),
|
||||
parentCreatable = parentType && parentType.hasFeature('creation');
|
||||
|
||||
// Only creatable types should be modifiable
|
||||
|
@ -10,6 +10,7 @@ define(
|
||||
mockNavigationService,
|
||||
mockLog,
|
||||
mockDomainObject,
|
||||
mockType,
|
||||
actionContext,
|
||||
action;
|
||||
|
||||
@ -30,6 +31,13 @@ define(
|
||||
"domainObject",
|
||||
[ "getId", "getModel", "getCapability" ]
|
||||
);
|
||||
mockType = jasmine.createSpyObj(
|
||||
"type",
|
||||
[ "hasFeature" ]
|
||||
);
|
||||
|
||||
mockDomainObject.getCapability.andReturn(mockType);
|
||||
mockType.hasFeature.andReturn(true);
|
||||
|
||||
actionContext = { domainObject: mockDomainObject };
|
||||
|
||||
@ -44,6 +52,8 @@ define(
|
||||
it("is only applicable when a domain object is present", function () {
|
||||
expect(EditAction.appliesTo(actionContext)).toBeTruthy();
|
||||
expect(EditAction.appliesTo({})).toBeFalsy();
|
||||
// Should have checked for creatability
|
||||
expect(mockType.hasFeature).toHaveBeenCalledWith('creation');
|
||||
});
|
||||
|
||||
it("changes URL path to edit mode when performed", function () {
|
||||
|
@ -18,7 +18,10 @@ define(
|
||||
|
||||
beforeEach(function () {
|
||||
capabilities = {
|
||||
type: { getProperties: function () { return []; } },
|
||||
type: {
|
||||
getProperties: function () { return []; },
|
||||
hasFeature: jasmine.createSpy('hasFeature')
|
||||
},
|
||||
persistence: jasmine.createSpyObj("persistence", ["persist"]),
|
||||
mutation: jasmine.createSpy("mutation")
|
||||
};
|
||||
@ -38,6 +41,7 @@ define(
|
||||
}
|
||||
};
|
||||
|
||||
capabilities.type.hasFeature.andReturn(true);
|
||||
capabilities.mutation.andReturn(true);
|
||||
|
||||
action = new PropertiesAction(dialogService, context);
|
||||
@ -65,6 +69,8 @@ define(
|
||||
it("is only applicable when a domain object is in context", function () {
|
||||
expect(PropertiesAction.appliesTo(context)).toBeTruthy();
|
||||
expect(PropertiesAction.appliesTo({})).toBeFalsy();
|
||||
// Make sure it checked for creatability
|
||||
expect(capabilities.type.hasFeature).toHaveBeenCalledWith('creation');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ define(
|
||||
mockContext,
|
||||
mockMutation,
|
||||
mockPersistence,
|
||||
mockType,
|
||||
actionContext,
|
||||
model,
|
||||
capabilities,
|
||||
@ -47,16 +48,18 @@ define(
|
||||
mockContext = jasmine.createSpyObj("context", [ "getParent" ]);
|
||||
mockMutation = jasmine.createSpyObj("mutation", [ "invoke" ]);
|
||||
mockPersistence = jasmine.createSpyObj("persistence", [ "persist" ]);
|
||||
mockType = jasmine.createSpyObj("type", [ "hasFeature" ]);
|
||||
|
||||
mockDomainObject.getId.andReturn("test");
|
||||
mockDomainObject.getCapability.andReturn(mockContext);
|
||||
mockContext.getParent.andReturn(mockParent);
|
||||
|
||||
mockType.hasFeature.andReturn(true);
|
||||
|
||||
|
||||
capabilities = {
|
||||
mutation: mockMutation,
|
||||
persistence: mockPersistence
|
||||
persistence: mockPersistence,
|
||||
type: mockType
|
||||
};
|
||||
model = {
|
||||
composition: [ "a", "test", "b", "c" ]
|
||||
@ -73,6 +76,9 @@ define(
|
||||
mockContext.getParent.andReturn(undefined);
|
||||
|
||||
expect(RemoveAction.appliesTo(actionContext)).toBeFalsy();
|
||||
|
||||
// Also verify that creatability was checked
|
||||
expect(mockType.hasFeature).toHaveBeenCalledWith('creation');
|
||||
});
|
||||
|
||||
it("mutates the parent when performed", function () {
|
||||
|
Loading…
x
Reference in New Issue
Block a user