|
20 | 20 | programming_question.question_assessments.first.skills << skill |
21 | 21 | end |
22 | 22 | 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 |
23 | 30 |
|
24 | 31 | before { login_as(user, scope: :user) } |
25 | 32 |
|
|
31 | 38 |
|
32 | 39 | questions.where(actable_type: 'Course::Assessment::Question::Programming').first |
33 | 40 | 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 |
34 | 46 |
|
35 | 47 | context 'upon duplicating a question' do |
36 | 48 | let!(:first_destination_assessment) { create(:assessment, course: course) } |
|
56 | 68 | end |
57 | 69 | end |
58 | 70 |
|
| 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 | + |
59 | 98 | context 'upon duplicating deprecated programming language question' do |
60 | 99 | let!(:second_destination_assessment) { create(:assessment, course: course) } |
61 | 100 | let!(:language) { programming_question.specific.language } |
|
0 commit comments