Files
nairobi/spec/system/admin/poll/questions/answers/images/images_spec.rb
Javi Martín 3da4ee00b8 Simplify tests requiring admin login
We were repeating the same code over and over (with a few variants) to
setup tests which require an administrator. We can use a tag and
simplify the code.
2020-12-02 15:33:19 +01:00

65 lines
1.9 KiB
Ruby

require "rails_helper"
describe "Images", :admin do
it_behaves_like "nested imageable",
"poll_question_answer",
"new_admin_answer_image_path",
{ "answer_id": "id" },
nil,
"Save image",
"Image uploaded successfully",
true
context "Index" do
scenario "Answer with no images" do
answer = create(:poll_question_answer)
visit admin_answer_images_path(answer)
expect(page).not_to have_css("img[title='']")
end
scenario "Answer with images" do
answer = create(:poll_question_answer)
image = create(:image, imageable: answer)
visit admin_answer_images_path(answer)
expect(page).to have_css("img[title='#{image.title}']")
expect(page).to have_content(image.title)
end
end
scenario "Add image to answer", :js do
answer = create(:poll_question_answer)
image = create(:image)
visit admin_answer_images_path(answer)
expect(page).not_to have_css("img[title='clippy.jpg']")
expect(page).not_to have_content("clippy.jpg")
visit new_admin_answer_image_path(answer)
imageable_attach_new_file(image, Rails.root.join("spec/fixtures/files/clippy.jpg"))
click_button "Save image"
expect(page).to have_css("img[title='clippy.jpg']")
expect(page).to have_content("clippy.jpg")
end
scenario "Remove image from answer", :js do
answer = create(:poll_question_answer)
image = create(:image, imageable: answer)
visit admin_answer_images_path(answer)
expect(page).to have_css("img[title='#{image.title}']")
expect(page).to have_content(image.title)
accept_confirm "Are you sure?" do
click_link "Remove image"
end
expect(page).not_to have_css("img[title='#{image.title}']")
expect(page).not_to have_content(image.title)
end
end