We get rid of database cleaner, and JavaScript tests are faster because between tests we now rollback transactions instead of truncating the database.
70 lines
1.9 KiB
Ruby
70 lines
1.9 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Images" do
|
|
before do
|
|
admin = create(:administrator)
|
|
login_as(admin.user)
|
|
end
|
|
|
|
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
|