discourse/spec/system/post_selection_copy_quote_spec.rb
Martin Brennan 304a7f3e1a
FIX: Do not show quote copy button to anon ()
This was an oversight in 51016e56dd99a9ad4bd82cdc6c0cf968754c70ed,
anon doesn't have any need to copy quotes, just as they have
no need to open the composer with a quote prefilled.
2024-01-30 13:19:35 +10:00

46 lines
1.4 KiB
Ruby

# frozen_string_literal: true
describe "Post selection | Copy quote", type: :system do
let(:topic_page) { PageObjects::Pages::Topic.new }
let(:cdp) { PageObjects::CDP.new }
fab!(:topic)
fab!(:post) { Fabricate(:post, topic: topic, raw: "Hello world it's time for quoting!") }
fab!(:current_user) { Fabricate(:admin) }
context "when logged in" do
before do
sign_in(current_user)
cdp.allow_clipboard
end
it "copies the selection from the post the clipboard" do
topic_page.visit_topic(topic)
select_text_range("#{topic_page.post_by_number_selector(1)} .cooked p", 0, 10)
topic_page.copy_quote_button.click
expect(cdp.read_clipboard.chomp).to eq(<<~QUOTE.chomp)
[quote=\"#{post.user.username}, post:1, topic:#{topic.id}\"]\nHello worl\n[/quote]\n
QUOTE
end
it "does not show the copy quote button if it has been disabled" do
SiteSetting.enable_quote_copy = false
topic_page.visit_topic(topic)
select_text_range("#{topic_page.post_by_number_selector(1)} .cooked p", 0, 10)
expect(page).not_to have_css(topic_page.copy_quote_button_selector)
end
end
context "when anon" do
it "does not show the copy quote button to anon users" do
topic_page.visit_topic(topic)
select_text_range("#{topic_page.post_by_number_selector(1)} .cooked p", 0, 10)
expect(page).not_to have_css(topic_page.copy_quote_button_selector)
end
end
end