mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 19:03:45 +08:00
FIX: Generate Onebox for posts of type moderator_action. (#6466)
This commit is contained in:
parent
3d8b063c83
commit
4e0533a20b
|
@ -26,6 +26,10 @@ module Oneboxer
|
||||||
@force_get_hosts ||= ['http://us.battle.net']
|
@force_get_hosts ||= ['http://us.battle.net']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.allowed_post_types
|
||||||
|
@allowed_post_types ||= [Post.types[:regular], Post.types[:moderator_action]]
|
||||||
|
end
|
||||||
|
|
||||||
def self.preview(url, options = nil)
|
def self.preview(url, options = nil)
|
||||||
options ||= {}
|
options ||= {}
|
||||||
invalidate(url) if options[:invalidate_oneboxes]
|
invalidate(url) if options[:invalidate_oneboxes]
|
||||||
|
@ -197,7 +201,7 @@ module Oneboxer
|
||||||
topic.posts.where(post_number: post_number).first :
|
topic.posts.where(post_number: post_number).first :
|
||||||
topic.ordered_posts.first
|
topic.ordered_posts.first
|
||||||
|
|
||||||
return if !post || post.hidden || post.post_type != Post.types[:regular]
|
return if !post || post.hidden || !allowed_post_types.include?(post.post_type)
|
||||||
|
|
||||||
if post_number > 1 && current_topic&.id == topic.id
|
if post_number > 1 && current_topic&.id == topic.id
|
||||||
excerpt = post.excerpt(SiteSetting.post_onebox_maxlength)
|
excerpt = post.excerpt(SiteSetting.post_onebox_maxlength)
|
||||||
|
|
|
@ -35,10 +35,11 @@ describe Oneboxer do
|
||||||
|
|
||||||
replier = Fabricate(:user)
|
replier = Fabricate(:user)
|
||||||
|
|
||||||
public_post = Fabricate(:post, raw: "This post has an emoji :+1:")
|
public_post = Fabricate(:post, raw: "This post has an emoji :+1:")
|
||||||
public_topic = public_post.topic
|
public_topic = public_post.topic
|
||||||
public_reply = Fabricate(:post, topic: public_topic, post_number: 2, user: replier)
|
public_reply = Fabricate(:post, topic: public_topic, post_number: 2, user: replier)
|
||||||
public_hidden = Fabricate(:post, topic: public_topic, post_number: 3, hidden: true)
|
public_hidden = Fabricate(:post, topic: public_topic, post_number: 3, hidden: true)
|
||||||
|
public_moderator_action = Fabricate(:post, topic: public_topic, post_number: 4, user: staff, post_type: Post.types[:moderator_action])
|
||||||
|
|
||||||
user = public_post.user
|
user = public_post.user
|
||||||
public_category = public_topic.category
|
public_category = public_topic.category
|
||||||
|
@ -57,6 +58,11 @@ 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"))
|
||||||
|
|
||||||
|
onebox = preview(public_moderator_action.url, user, public_category)
|
||||||
|
expect(onebox).to include(public_moderator_action.excerpt)
|
||||||
|
expect(onebox).to include(%{data-post="4"})
|
||||||
|
expect(onebox).to include(PrettyText.avatar_img(staff.avatar_template, "tiny"))
|
||||||
|
|
||||||
onebox = preview(public_reply.url, user, public_category, public_topic)
|
onebox = preview(public_reply.url, user, public_category, public_topic)
|
||||||
expect(onebox).not_to include(public_topic.title)
|
expect(onebox).not_to include(public_topic.title)
|
||||||
expect(onebox).to include(replier.avatar_template.sub("{size}", "40"))
|
expect(onebox).to include(replier.avatar_template.sub("{size}", "40"))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user