[Containment] Update specs for coverage

Update existing specs for code coverage after changes for
WTD-962, composition policy.
This commit is contained in:
Victor Woeltjen 2015-04-10 18:00:13 -07:00
parent fa5bc326e1
commit db57444738
2 changed files with 57 additions and 1 deletions

View File

@ -12,6 +12,7 @@ define(
var mockType,
mockParent,
mockProperties,
mockPolicyService,
testModel,
wizard;
@ -46,6 +47,7 @@ define(
]
);
mockProperties = [ "A", "B", "C" ].map(createMockProperty);
mockPolicyService = jasmine.createSpyObj('policyService', ['allow']);
testModel = { someKey: "some value" };
@ -58,7 +60,8 @@ define(
wizard = new CreateWizard(
mockType,
mockParent
mockParent,
mockPolicyService
);
});
@ -104,6 +107,32 @@ define(
});
});
it("validates selection types using policy", function () {
var mockDomainObject = jasmine.createSpyObj(
'domainObject',
['getCapability']
),
mockOtherType = jasmine.createSpyObj(
'otherType',
['getKey']
),
structure = wizard.getFormStructure(),
sections = structure.sections,
rows = structure.sections[sections.length - 1].rows,
locationRow = rows[rows.length - 1];
mockDomainObject.getCapability.andReturn(mockOtherType);
locationRow.validate(mockDomainObject);
// Should check policy to see if the user-selected location
// can actually contain objects of this type
expect(mockPolicyService.allow).toHaveBeenCalledWith(
'composition',
mockOtherType,
mockType
);
});
});
}

View File

@ -68,6 +68,33 @@ define(
.toHaveBeenCalledWith("context");
});
it("rejects changes which fail validation", function () {
mockScope.structure = { validate: jasmine.createSpy('validate') };
mockScope.structure.validate.andReturn(false);
// Pass selection change
mockScope.$watch.mostRecentCall.args[1](mockDomainObject);
expect(mockScope.structure.validate).toHaveBeenCalled();
// Change should have been rejected
expect(mockScope.ngModel.someField).not.toEqual(mockDomainObject);
});
it("treats a lack of a selection as invalid", function () {
mockScope.ngModelController = jasmine.createSpyObj(
'ngModelController',
[ '$setValidity' ]
);
mockScope.$watch.mostRecentCall.args[1](mockDomainObject);
expect(mockScope.ngModelController.$setValidity)
.toHaveBeenCalledWith(jasmine.any(String), true);
mockScope.$watch.mostRecentCall.args[1](undefined);
expect(mockScope.ngModelController.$setValidity)
.toHaveBeenCalledWith(jasmine.any(String), false);
});
});
}
);