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:
parent
50ea3c8743
commit
91c89df68a
|
@ -219,9 +219,7 @@ module Oneboxer
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
topic = Topic.find_by(id: route[:topic_id])
|
return unless topic = Topic.find_by(id: route[:id] || route[:topic_id])
|
||||||
|
|
||||||
return unless topic
|
|
||||||
return if topic.private_message?
|
return if topic.private_message?
|
||||||
|
|
||||||
if current_category.blank? || current_category.id != topic.category_id
|
if current_category.blank? || current_category.id != topic.category_id
|
||||||
|
|
|
@ -69,6 +69,9 @@ describe Oneboxer do
|
||||||
expect(onebox).to include(%{data-post="2"})
|
expect(onebox).to include(%{data-post="2"})
|
||||||
expect(onebox).to include(PrettyText.avatar_img(replier.avatar_template, "tiny"))
|
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)
|
onebox = preview(public_moderator_action.url, user, public_category)
|
||||||
expect(onebox).to include(public_moderator_action.excerpt)
|
expect(onebox).to include(public_moderator_action.excerpt)
|
||||||
expect(onebox).to include(%{data-post="4"})
|
expect(onebox).to include(%{data-post="4"})
|
||||||
|
|
Loading…
Reference in New Issue