diff --git a/app/presenters/submission/show_presenter.rb b/app/presenters/submission/show_presenter.rb index 453a5dd8896..c014836cba2 100644 --- a/app/presenters/submission/show_presenter.rb +++ b/app/presenters/submission/show_presenter.rb @@ -106,7 +106,7 @@ class Submission::ShowPresenter return @submission.entered_grade end - grade = @assignment.score_to_grade(@submission.score, nil, true) + grade = @assignment.score_to_grade(@submission.score, nil, true) if @submission.score replace_dash_with_minus(grade) elsif @assignment.grading_type == "letter_grade" replace_dash_with_minus(@submission.entered_grade) diff --git a/spec/presenters/submission/show_presenter_spec.rb b/spec/presenters/submission/show_presenter_spec.rb index c72360b4618..2850c15a885 100644 --- a/spec/presenters/submission/show_presenter_spec.rb +++ b/spec/presenters/submission/show_presenter_spec.rb @@ -253,26 +253,33 @@ describe Submission::ShowPresenter do Submission::ShowPresenter.new(submission: @assignment.submissions.find_by(user: @student), current_user: @student) end + context "when restrict quantitative data is enabled" do + before do + course.root_account.enable_feature!(:restrict_quantitative_data) + course.update!(restrict_quantitative_data: true) + end + + it "returns nil if the passed in grade is nil" do + expect(presenter.entered_grade).to be_nil + end + + it "returns a letter grade with trailing en-dash replaced with minus" do + @assignment.grade_student(@student, grader: @teacher, grade: "8") + expect(presenter.entered_grade).to eq "B#{minus}" + end + + it "returns complete/incomplete if the assignment type is pass/fail" do + @assignment.update!(grading_type: "pass_fail") + @assignment.grade_student(@student, grader: @teacher, grade: "complete") + expect(presenter.entered_grade).to eq "complete" + end + end + it "returns the entered grade" do @assignment.grade_student(@student, grader: @teacher, grade: "8") expect(presenter.entered_grade).to eq "8" end - it "returns a letter grade with trailing en-dash replaced with minus if 'Restrict Quantitative Data' is enabled" do - course.root_account.enable_feature!(:restrict_quantitative_data) - course.update!(restrict_quantitative_data: true) - @assignment.grade_student(@student, grader: @teacher, grade: "8") - expect(presenter.entered_grade).to eq "B#{minus}" - end - - it "returns complete/incomplete if the assignment type is pass/fail with 'Restrict Quantitative Data' enabled" do - course.root_account.enable_feature!(:restrict_quantitative_data) - course.update!(restrict_quantitative_data: true) - @assignment.update!(grading_type: "pass_fail") - @assignment.grade_student(@student, grader: @teacher, grade: "complete") - expect(presenter.entered_grade).to eq "complete" - end - it "returns a letter grade with trailing en-dash replaced with minus if the assignment type is letter grade" do @assignment.update!(grading_type: "letter_grade") @assignment.grade_student(@student, grader: @teacher, grade: "B#{en_dash}")