Skip to content

Commit 126d4e3

Browse files
craigtonlianadi-herwana-nus
authored andcommitted
test(DuplicationSpec): add test for rubric-based response duplication
1 parent e2ca167 commit 126d4e3

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

spec/features/course/assessment/question/duplication_spec.rb

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
programming_question.question_assessments.first.skills << skill
2121
end
2222
end
23+
let(:rubric_source_assessment) do
24+
create(:assessment, :with_rubric_question, course: course).tap do |assessment|
25+
rubric_question =
26+
assessment.questions.where(actable_type: 'Course::Assessment::Question::RubricBasedResponse').first
27+
rubric_question.question_assessments.first.skills << skill
28+
end
29+
end
2330

2431
before { login_as(user, scope: :user) }
2532

@@ -31,6 +38,11 @@
3138

3239
questions.where(actable_type: 'Course::Assessment::Question::Programming').first
3340
end
41+
let!(:rubric_question) do
42+
questions = rubric_source_assessment.questions
43+
44+
questions.where(actable_type: 'Course::Assessment::Question::RubricBasedResponse').first
45+
end
3446

3547
context 'upon duplicating a question' do
3648
let!(:first_destination_assessment) { create(:assessment, course: course) }
@@ -56,6 +68,33 @@
5668
end
5769
end
5870

71+
context 'upon duplicating a rubric-based response question' do
72+
let!(:rubric_destination_assessment) { create(:assessment, course: course) }
73+
74+
scenario 'I can duplicate that question from one assessment to another' do
75+
visit course_assessment_path(course, rubric_source_assessment)
76+
77+
expect(rubric_destination_assessment.questions.count).to be(0)
78+
79+
within all('section', text: rubric_question.title).first do
80+
click_button 'Duplicate'
81+
end
82+
83+
find('li', text: rubric_destination_assessment.title).click
84+
expect_toastify('Your question has been duplicated.')
85+
86+
expect(rubric_destination_assessment.questions.reload.count).to eq(1)
87+
duplicated_question = rubric_destination_assessment.questions.last
88+
expect(duplicated_question.title).to eq(rubric_question.title)
89+
expect(duplicated_question.question_assessments.first.skills.first.id).
90+
to eq(rubric_question.question_assessments.first.skills.first.id)
91+
92+
visit course_assessment_path(course, rubric_destination_assessment)
93+
94+
expect(page).to have_text(rubric_destination_assessment.title)
95+
end
96+
end
97+
5998
context 'upon duplicating deprecated programming language question' do
6099
let!(:second_destination_assessment) { create(:assessment, course: course) }
61100
let!(:language) { programming_question.specific.language }

0 commit comments

Comments
 (0)