mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 10:06:17 +08:00
0a619d8c88
Small js fix for fast edit to allow posts to save changes when the post contains apostrophes and quotation marks. Replaces unicode characters in text prior to saving the edit. Includes system tests for fast edit and introduces a new system spec component for fast edit usage.
56 lines
1.8 KiB
Ruby
56 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
describe "Fast edit", type: :system, js: true do
|
||
let(:topic_page) { PageObjects::Pages::Topic.new }
|
||
let(:fast_editor) { PageObjects::Components::FastEditor.new }
|
||
fab!(:topic) { Fabricate(:topic) }
|
||
fab!(:post) { Fabricate(:post, topic: topic) }
|
||
fab!(:post_2) { Fabricate(:post, topic: topic, raw: "It ‘twas a great’ “time”!") }
|
||
fab!(:current_user) { Fabricate(:admin) }
|
||
|
||
before { sign_in(current_user) }
|
||
|
||
context "when text selected it opens contact menu and fast editor" do
|
||
it "opens context menu and fast edit dialog" do
|
||
topic_page.visit_topic(topic)
|
||
|
||
select_text_range("#{topic_page.post_by_number_selector(1)} .cooked p", 0, 10)
|
||
expect(topic_page.fast_edit_button).to be_visible
|
||
|
||
topic_page.click_fast_edit_button
|
||
expect(topic_page.fast_edit_input).to be_visible
|
||
end
|
||
|
||
it "edits first paragraph and saves changes" do
|
||
topic_page.visit_topic(topic)
|
||
|
||
select_text_range("#{topic_page.post_by_number_selector(1)} .cooked p", 0, 5)
|
||
topic_page.click_fast_edit_button
|
||
|
||
fast_editor.fill_content("Howdy")
|
||
fast_editor.save
|
||
|
||
within("#post_1 .cooked > p") do |el|
|
||
expect(el).not_to eq("Hello world")
|
||
expect(el).to have_content("Howdy")
|
||
end
|
||
end
|
||
end
|
||
|
||
context "when editing text that has strange characters" do
|
||
it "saves when paragraph contains apostrophe" do
|
||
topic_page.visit_topic(topic)
|
||
|
||
select_text_range("#{topic_page.post_by_number_selector(2)} .cooked p", 19, 4)
|
||
topic_page.click_fast_edit_button
|
||
|
||
fast_editor.fill_content("day")
|
||
fast_editor.save
|
||
|
||
expect(find("#{topic_page.post_by_number_selector(2)} .cooked p")).to have_content(
|
||
"It ‘twas a great’ “day”!",
|
||
)
|
||
end
|
||
end
|
||
end
|