[Containment] Update specs for coverage
Update existing specs for code coverage after changes for WTD-962, composition policy.
This commit is contained in:
@@ -12,6 +12,7 @@ define(
|
|||||||
var mockType,
|
var mockType,
|
||||||
mockParent,
|
mockParent,
|
||||||
mockProperties,
|
mockProperties,
|
||||||
|
mockPolicyService,
|
||||||
testModel,
|
testModel,
|
||||||
wizard;
|
wizard;
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ define(
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
mockProperties = [ "A", "B", "C" ].map(createMockProperty);
|
mockProperties = [ "A", "B", "C" ].map(createMockProperty);
|
||||||
|
mockPolicyService = jasmine.createSpyObj('policyService', ['allow']);
|
||||||
|
|
||||||
testModel = { someKey: "some value" };
|
testModel = { someKey: "some value" };
|
||||||
|
|
||||||
@@ -58,7 +60,8 @@ define(
|
|||||||
|
|
||||||
wizard = new CreateWizard(
|
wizard = new CreateWizard(
|
||||||
mockType,
|
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
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,33 @@ define(
|
|||||||
.toHaveBeenCalledWith("context");
|
.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);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
Reference in New Issue
Block a user