Files
nairobi/spec/features/admin/poll/questions/answers/answers_spec.rb
Javi Martín 44d137a4c0 Simplify translatable tests in admin section
These feature tests were taking too long, we can't run them for every
single model.

I'm taking the approach of using one different model for each test, but
in theory only using a few models covering every possible scenario
would be enough.
2019-09-23 18:01:44 +02:00

72 lines
1.8 KiB
Ruby

require "rails_helper"
describe "Answers" do
before do
admin = create(:administrator)
login_as admin.user
end
scenario "Create" do
question = create(:poll_question)
title = "Whatever the question may be, the answer is always 42"
description = "The Hitchhiker's Guide To The Universe"
visit admin_question_path(question)
click_link "Add answer"
fill_in "Answer", with: title
fill_in "Description", with: description
click_button "Save"
expect(page).to have_content(title)
expect(page).to have_content(description)
end
scenario "Create second answer and place after the first one" do
question = create(:poll_question)
answer = create(:poll_question_answer, title: "First", question: question, given_order: 1)
title = "Second"
description = "Description"
visit admin_question_path(question)
click_link "Add answer"
fill_in "Answer", with: title
fill_in "Description", with: description
click_button "Save"
expect(page.body.index("First")).to be < page.body.index("Second")
end
scenario "Update" do
question = create(:poll_question)
answer = create(:poll_question_answer, question: question, title: "Answer title", given_order: 2)
answer2 = create(:poll_question_answer, question: question, title: "Another title", given_order: 1)
visit admin_answer_path(answer)
click_link "Edit answer"
old_title = answer.title
new_title = "Ex Machina"
fill_in "Answer", with: new_title
click_button "Save"
expect(page).to have_content("Changes saved")
expect(page).to have_content(new_title)
visit admin_question_path(question)
expect(page).to have_content(new_title)
expect(page).not_to have_content(old_title)
expect(answer2.title).to appear_before(new_title)
end
end