Commit 25412f9e by Will Daly

Merge pull request #596 from edx/will/ora-782

Skip validation for assessment views that are disabled
parents 4de25a03 3b13c956
...@@ -161,10 +161,28 @@ describe("OpenAssessment.EditSettingsView", function() { ...@@ -161,10 +161,28 @@ describe("OpenAssessment.EditSettingsView", function() {
// Simulate one of the assessment views being invalid // Simulate one of the assessment views being invalid
assessmentViews[PEER].isValid = false; assessmentViews[PEER].isValid = false;
assessmentViews[PEER].setValidationErrors(["test error"]); assessmentViews[PEER].setValidationErrors(["test error"]);
assessmentViews[PEER].isEnabled(true);
// Expect that the parent view is also invalid // Expect that the parent view is also invalid
expect(view.validate()).toBe(false); expect(view.validate()).toBe(false);
debugger;
expect(view.validationErrors()).toContain("test error"); 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 = { ...@@ -213,9 +213,11 @@ OpenAssessment.EditSettingsView.prototype = {
isValid = (this.startDatetimeControl.validate() && isValid); isValid = (this.startDatetimeControl.validate() && isValid);
isValid = (this.dueDatetimeControl.validate() && isValid); isValid = (this.dueDatetimeControl.validate() && isValid);
// Validate each of the assessment views // Validate each of the *enabled* assessment views
$.each(this.assessmentViews, function() { $.each(this.assessmentViews, function() {
isValid = (this.validate() && isValid); if (this.isEnabled()) {
isValid = (this.validate() && isValid);
}
}); });
return 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