From c6bf7887f0f675ff1c2087eeab917461864098b4 Mon Sep 17 00:00:00 2001 From: bivanalhar Date: Sat, 14 Sep 2024 08:30:13 +0800 Subject: [PATCH] chore(test): add live feedback settings test - for assessment edit page --- .../assessment/assessments_controller.rb | 2 +- .../assessment/assessments_controller_spec.rb | 68 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/app/controllers/course/assessment/assessments_controller.rb b/app/controllers/course/assessment/assessments_controller.rb index 1e47856489e..b09d8708f21 100644 --- a/app/controllers/course/assessment/assessments_controller.rb +++ b/app/controllers/course/assessment/assessments_controller.rb @@ -191,7 +191,7 @@ def autograded_params end def live_feedback_params - params.required(:live_feedback_settings).permit(:enabled, assessment_ids: []) + params.required(:live_feedback_settings).permit(:enabled) end # Randomized Assessment is temporarily hidden (PR#5406) diff --git a/spec/controllers/course/assessment/assessments_controller_spec.rb b/spec/controllers/course/assessment/assessments_controller_spec.rb index 0ba71ad9b26..08f825e78ef 100644 --- a/spec/controllers/course/assessment/assessments_controller_spec.rb +++ b/spec/controllers/course/assessment/assessments_controller_spec.rb @@ -265,5 +265,73 @@ end end end + + describe '#live_feedback_settings' do + render_views + let(:assessment) { create(:assessment, course: course) } + let(:lang_valid_for_codaveri) { Coursemology::Polyglot::Language::Python::Python3Point12.instance } + let(:lang_invalid_for_codaveri) { Coursemology::Polyglot::Language::Java::Java8.instance } + let!(:programming_qn_1) do + create(:course_assessment_question_programming, assessment: assessment, + language: lang_valid_for_codaveri, + template_package: true) + end + let!(:programming_qn_2) do + create(:course_assessment_question_programming, assessment: assessment, + language: lang_invalid_for_codaveri, + template_package: true) + end + + subject do + get :live_feedback_settings, as: :json, params: { + course_id: course.id, + id: assessment.id, + } + end + + context 'on fetching the live feedback settings for this assessment' do + it 'returns programming languages that has valid languages for codaveri' do + subject + + json_result = JSON.parse(response.body) + expect(json_result['assessments'][0]['programmingQuestions'].count).to eq(1) + end + end + end + + describe '#update_live_feedback_settings' do + let(:assessment) { create(:assessment, course: course) } + let(:lang_valid_for_codaveri) { Coursemology::Polyglot::Language::Python::Python3Point12.instance } + let(:lang_invalid_for_codaveri) { Coursemology::Polyglot::Language::Java::Java8.instance } + let!(:programming_qn_1) do + create(:course_assessment_question_programming, assessment: assessment, + language: lang_valid_for_codaveri, + template_package: true) + end + let!(:programming_qn_2) do + create(:course_assessment_question_programming, assessment: assessment, + language: lang_valid_for_codaveri, + template_package: true) + end + + subject do + patch :update_live_feedback_settings, params: { + course_id: course.id, + id: assessment.id, + live_feedback_settings: { + enabled: true + } + } + end + + context 'on fetching the live feedback settings for this assessment' do + it 'returns programming languages that has valid languages for codaveri' do + subject + + expect(programming_qn_1.reload.live_feedback_enabled).to eq(true) + expect(programming_qn_2.reload.live_feedback_enabled).to eq(true) + end + end + end end end