[Create] Test creation filtering

Test that only types which indicate they should be createable
appear in the Create menu. WTD-705.
This commit is contained in:
Victor Woeltjen
2015-01-21 16:24:13 -08:00
parent b4679b9c6d
commit f12d0ab313

View File

@@ -12,6 +12,7 @@ define(
var mockTypeService, var mockTypeService,
mockDialogService, mockDialogService,
mockCreationService, mockCreationService,
mockTypes,
provider; provider;
function createMockType(name) { function createMockType(name) {
@@ -23,9 +24,11 @@ define(
"getName", "getName",
"getDescription", "getDescription",
"getProperties", "getProperties",
"getInitialModel" "getInitialModel",
"hasFeature"
] ]
); );
mockType.hasFeature.andReturn(true);
mockType.getName.andReturn(name); mockType.getName.andReturn(name);
return mockType; return mockType;
} }
@@ -43,10 +46,9 @@ define(
"creationService", "creationService",
[ "createObject" ] [ "createObject" ]
); );
mockTypes = [ "A", "B", "C" ].map(createMockType);
mockTypeService.listTypes.andReturn( mockTypeService.listTypes.andReturn(mockTypes);
[ "A", "B", "C" ].map(createMockType)
);
provider = new CreateActionProvider( provider = new CreateActionProvider(
mockTypeService, mockTypeService,
@@ -68,6 +70,19 @@ define(
domainObject: {} domainObject: {}
}).length).toEqual(0); }).length).toEqual(0);
}); });
it("does not expose non-creatable types", function () {
// One of the types won't have the creation feature...
mockTypes[1].hasFeature.andReturn(false);
// ...so it should have been filtered out.
expect(provider.getActions({
key: "create",
domainObject: {}
}).length).toEqual(2);
// Make sure it was creation which was used to check
expect(mockTypes[1].hasFeature)
.toHaveBeenCalledWith("creation");
});
}); });
} }
); );