This way we don't have to write `"spec/fixtures/files"` every time. Note this method isn't included in factories. We could include it like so: ``` FactoryBot::SyntaxRunner.class_eval do include ActiveSupport::Testing::FileFixtures self.file_fixture_path = RSpec.configuration.file_fixture_path end ``` However, I'm not sure about the possible side effects, and since we only use attachments in a few factories, there isn't much gain in applying the monkey-patch.
68 lines
2.0 KiB
Ruby
68 lines
2.0 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "CKEditor" do
|
|
scenario "is present before & after turbolinks update page" do
|
|
author = create(:user)
|
|
login_as(author)
|
|
|
|
visit new_debate_path
|
|
|
|
expect(page).to have_css ".translatable-fields[data-locale='en'] .cke_wysiwyg_frame"
|
|
|
|
within ".subnavigation" do
|
|
click_link "Debates"
|
|
end
|
|
|
|
click_link "Start a debate"
|
|
|
|
expect(page).to have_css ".translatable-fields[data-locale='en'] .cke_wysiwyg_frame"
|
|
end
|
|
|
|
scenario "uploading an image through the upload tab", :admin do
|
|
visit new_admin_site_customization_page_path
|
|
fill_in_ckeditor "Content", with: "Filling in to make sure CKEditor is loaded"
|
|
find(".cke_button__image").click
|
|
|
|
expect(page).to have_css(".cke_dialog")
|
|
|
|
execute_script "document.getElementsByClassName('cke_dialog')[0].style.left = '0px'"
|
|
execute_script "document.getElementsByClassName('cke_dialog')[0].style.top = '0px'"
|
|
|
|
expect(find(".cke_dialog")).to match_style(left: "0px", top: "0px")
|
|
|
|
click_link "Upload"
|
|
|
|
within_frame(1) do
|
|
attach_file "Send it to the Server", file_fixture("clippy.jpg")
|
|
end
|
|
|
|
click_link "Send it to the Server"
|
|
|
|
expect(page).to have_css "img[src$='clippy.jpg']"
|
|
end
|
|
|
|
scenario "cannot upload attachments through link tab", :admin do
|
|
visit new_admin_site_customization_page_path
|
|
fill_in_ckeditor "Content", with: "Filling in to make sure CKEditor is loaded"
|
|
find(".cke_button__link").click
|
|
|
|
expect(page).to have_css(".cke_dialog")
|
|
expect(page).not_to have_link "Upload"
|
|
expect(page).not_to have_link "Browse Server"
|
|
end
|
|
|
|
context "When navigating back to editor page using browser history back" do
|
|
scenario "display ckeditor unsaved contents", :admin do
|
|
visit new_admin_newsletter_path
|
|
fill_in_ckeditor "Email content", with: "This is an unsaved body"
|
|
click_link "Newsletters"
|
|
|
|
expect(page).to have_link "New newsletter"
|
|
|
|
go_back
|
|
|
|
expect(page).to have_ckeditor "Email content", with: "This is an unsaved body"
|
|
end
|
|
end
|
|
end
|