discourse/spec/components/flag_query_spec.rb

83 lines
2.6 KiB
Ruby
Raw Normal View History

require 'rails_helper'
require_dependency 'flag_query'
describe FlagQuery do
let(:codinghorror) { Fabricate(:coding_horror) }
describe "flagged_posts_report" do
it "does not return flags on system posts" do
admin = Fabricate(:admin)
post = create_post(user: Discourse.system_user)
PostAction.act(codinghorror, post, PostActionType.types[:spam])
2017-09-09 04:47:49 +08:00
posts, topics, users = FlagQuery.flagged_posts_report(admin)
expect(posts).to be_blank
expect(topics).to be_blank
expect(users).to be_blank
end
it "operates correctly" do
admin = Fabricate(:admin)
moderator = Fabricate(:moderator)
post = create_post
post2 = create_post
user2 = Fabricate(:user)
user3 = Fabricate(:user)
PostAction.act(codinghorror, post, PostActionType.types[:spam])
PostAction.act(user2, post, PostActionType.types[:spam])
mod_message = PostAction.act(user3, post, PostActionType.types[:notify_moderators], message: "this is a :one::zero:")
PostAction.act(codinghorror, post2, PostActionType.types[:spam])
PostAction.act(user2, post2, PostActionType.types[:spam])
2017-09-09 04:47:49 +08:00
posts, topics, users = FlagQuery.flagged_posts_report(admin)
2015-01-10 00:34:37 +08:00
expect(posts.count).to eq(2)
first = posts.first
2015-01-10 00:34:37 +08:00
expect(users.count).to eq(5)
expect(first[:post_actions].count).to eq(2)
2015-01-10 00:34:37 +08:00
expect(topics.count).to eq(2)
second = posts[1]
2015-01-10 00:34:37 +08:00
expect(second[:post_actions].count).to eq(3)
expect(second[:post_actions].first[:permalink]).to eq(mod_message.related_post.topic.relative_url)
expect(second[:post_actions].first[:conversation][:response][:excerpt]).to match("<img src=")
2017-09-09 04:47:49 +08:00
posts, users = FlagQuery.flagged_posts_report(admin, offset: 1)
2015-01-10 00:34:37 +08:00
expect(posts.count).to eq(1)
2017-09-09 04:47:49 +08:00
# Try by topic
posts = FlagQuery.flagged_posts_report(admin, topic_id: post.topic_id)
expect(posts).to be_present
posts = FlagQuery.flagged_posts_report(admin, topic_id: -1)
expect(posts[0]).to be_blank
2017-09-09 04:47:49 +08:00
# Try by user
posts = FlagQuery.flagged_posts_report(admin, user_id: post.user_id)
expect(posts).to be_present
posts = FlagQuery.flagged_posts_report(admin, user_id: -1000)
expect(posts[0]).to be_blank
# chuck post in category a mod can not see and make sure its missing
category = Fabricate(:category)
2017-07-28 09:20:09 +08:00
category.set_permissions(admins: :full)
category.save
post2.topic.category_id = category.id
post2.topic.save
2017-09-09 04:47:49 +08:00
posts, users = FlagQuery.flagged_posts_report(moderator)
2015-01-10 00:34:37 +08:00
expect(posts.count).to eq(1)
2017-09-09 04:47:49 +08:00
end
2017-09-09 04:47:49 +08:00
end
end