FIX: My Thread's last reply excerpt on mobile (#27072)

... wasn't properly escaped so it would should html entities (like `'` instead of the apostrophe `'`).

I checked all the other places we show an excerpt and this was the only one that was missing the call to `htmlSafe` -> `replaceEmoji`.

Internal ref - t/128877
This commit is contained in:
Régis Hanol 2024-05-18 14:07:49 +02:00 committed by GitHub
parent bf80688cd3
commit aa1b874f1a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 2 deletions

View File

@ -1,5 +1,7 @@
import Component from "@glimmer/component";
import { htmlSafe } from "@ember/template";
import formatDate from "discourse/helpers/format-date";
import replaceEmoji from "discourse/helpers/replace-emoji";
export default class ThreadPreview extends Component {
get lastReplyDate() {
@ -16,7 +18,7 @@ export default class ThreadPreview extends Component {
</span>
<span>:</span>
<span class="c-user-thread__excerpt-text">
{{@preview.lastReplyExcerpt}}
{{replaceEmoji (htmlSafe @preview.lastReplyExcerpt)}}
</span>
</span>
</template>

View File

@ -11,6 +11,10 @@ module PageObjects
def open_thread(thread)
find(".c-user-thread[data-id='#{thread.id}'] .chat__thread-title__name").click
end
def excerpt_text
find(".c-user-thread__excerpt-text").text
end
end
end
end

View File

@ -245,7 +245,13 @@ RSpec.describe "User threads", type: :system do
context "when in mobile", mobile: true do
before do
chat_thread_chain_bootstrap(channel: channel_1, users: [current_user, Fabricate(:user)])
last_message =
chat_thread_chain_bootstrap(
channel: channel_1,
users: [current_user, Fabricate(:user)],
).last_message
update_message!(last_message, text: "How's everyone doing?")
end
it "has the expected UI elements" do
@ -258,6 +264,8 @@ RSpec.describe "User threads", type: :system do
expect(user_threads_page).to have_css(".c-user-thread__excerpt")
expect(user_threads_page).to have_css(".c-user-thread__excerpt-poster")
expect(user_threads_page).to have_css(".c-user-thread .relative-date")
expect(user_threads_page.excerpt_text).to eq("How's everyone doing?")
end
end
end