Commit 3b13c956 by Will Daly

Skip validation for assessment views that are disabled

parent a886d1b3
......@@ -161,10 +161,28 @@ describe("OpenAssessment.EditSettingsView", function() {
// Simulate one of the assessment views being invalid
assessmentViews[PEER].isValid = false;
assessmentViews[PEER].setValidationErrors(["test error"]);
assessmentViews[PEER].isEnabled(true);
// Expect that the parent view is also invalid
expect(view.validate()).toBe(false);
debugger;
expect(view.validationErrors()).toContain("test error");
});
it("validates only assessments that are enabled", function() {
// Simulate one of the assessment views being invalid but disabled
assessmentViews[PEER].isValid = false;
assessmentViews[PEER].setValidationErrors(["test error"]);
assessmentViews[PEER].isEnabled(false);
// Spy on the assessment view's validate() method so we can
// verify that it doesn't get called (thus marking the DOM)
spyOn(assessmentViews[PEER], 'validate').andCallThrough();
// Expect that the parent view is still valid
expect(view.validate()).toBe(true);
// Check that the assessment view didn't get a chance
// to mark anything as invalid
expect(assessmentViews[PEER].validate).not.toHaveBeenCalled();
});
});
......@@ -213,9 +213,11 @@ OpenAssessment.EditSettingsView.prototype = {
isValid = (this.startDatetimeControl.validate() && isValid);
isValid = (this.dueDatetimeControl.validate() && isValid);
// Validate each of the assessment views
// Validate each of the *enabled* assessment views
$.each(this.assessmentViews, function() {
isValid = (this.validate() && isValid);
if (this.isEnabled()) {
isValid = (this.validate() && isValid);
}
});
return isValid;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment