FIX: onebox local topic when using slug-less URL

When linking to a topic in the same Discourse, we try to onebox the link to show the title
and other various information depending on whether it's a "standard" or "inline" onebox.

However, we were not properly detecting links to topics that had no slugs (eg. https://meta.discourse.org/t/1234).
This commit is contained in:
Régis Hanol 2020-06-23 17:18:38 +02:00
parent 50ea3c8743
commit 91c89df68a
2 changed files with 4 additions and 3 deletions

View File

@ -219,9 +219,7 @@ module Oneboxer
end
end
topic = Topic.find_by(id: route[:topic_id])
return unless topic
return unless topic = Topic.find_by(id: route[:id] || route[:topic_id])
return if topic.private_message?
if current_category.blank? || current_category.id != topic.category_id

View File

@ -69,6 +69,9 @@ describe Oneboxer do
expect(onebox).to include(%{data-post="2"})
expect(onebox).to include(PrettyText.avatar_img(replier.avatar_template, "tiny"))
short_url = "#{Discourse.base_uri}/t/#{public_topic.id}"
expect(preview(short_url, user, public_category)).to include(public_topic.title)
onebox = preview(public_moderator_action.url, user, public_category)
expect(onebox).to include(public_moderator_action.excerpt)
expect(onebox).to include(%{data-post="4"})