mirror of
https://github.com/discourse/discourse.git
synced 2025-06-02 12:45:24 +08:00
DEV: Update username in new quote format - Part 1 (#22032)
When we introduced the new quote format with full-name display name: ``` [quote="Ted Johansson, post:1, topic:2, username:ted"] we overlooked the code responsible for rewriting quotes when a user's name is changed. ``` The functional part of this change adds support for the new quote format in the code that updates quotes when a user's username changes. See the test case in `spec/services/username_changer_spec.rb` for the details. In addition, this change adds a regression test for PrettyText to cover the new quote format, and extracts the code responsible for rewriting raw and cooked quotes into its own `QuoteRewriter` class. The functionality of the latter is tested through the tests in `spec/services/username_changer_spec.rb`.
This commit is contained in:
@ -28,6 +28,28 @@ RSpec.describe PrettyText do
|
||||
|
||||
before { User.stubs(:default_template).returns(default_avatar) }
|
||||
|
||||
it "correctly extracts usernames from the new quote format" do
|
||||
topic = Fabricate(:topic, title: "this is a test topic :slight_smile:")
|
||||
expected = <<~HTML
|
||||
<aside class="quote no-group" data-username="codinghorror" data-post="2" data-topic="#{topic.id}">
|
||||
<div class="title">
|
||||
<div class="quote-controls"></div>
|
||||
<a href="http://test.localhost/t/this-is-a-test-topic/#{topic.id}/2">This is a test topic <img width="20" height="20" src="/images/emoji/twitter/slight_smile.png?v=#{Emoji::EMOJI_VERSION}" title="slight_smile" loading="lazy" alt="slight_smile" class="emoji"></a>
|
||||
</div>
|
||||
<blockquote>
|
||||
<p>ddd</p>
|
||||
</blockquote>
|
||||
</aside>
|
||||
HTML
|
||||
|
||||
expect(
|
||||
cook(
|
||||
"[quote=\"Jeff, post:2, topic:#{topic.id}, username:codinghorror\"]\nddd\n[/quote]",
|
||||
topic_id: 1,
|
||||
),
|
||||
).to eq(n(expected))
|
||||
end
|
||||
|
||||
it "do off topic quoting with emoji unescape" do
|
||||
topic = Fabricate(:topic, title: "this is a test topic :slight_smile:")
|
||||
expected = <<~HTML
|
||||
|
Reference in New Issue
Block a user