REFACTOR: Remove unncessary stubs from pending flags reminder

They seem to be calculated fine by the application, and stubbing
makes the tests more brittle and prone to regression.
This commit is contained in:
Robin Ward 2019-01-24 13:39:21 -05:00
parent a518950e52
commit 96b2585a91
2 changed files with 12 additions and 9 deletions

View File

@ -8,14 +8,12 @@ module Jobs
def execute(args) def execute(args)
if SiteSetting.notify_about_flags_after > 0 if SiteSetting.notify_about_flags_after > 0
flagged_posts_count = PostAction.flagged_posts_count flagged_posts_count = PostAction.flagged_posts_count
return unless flagged_posts_count > 0 return unless flagged_posts_count > 0
flag_ids = pending_flag_ids flag_ids = pending_flag_ids
if flag_ids.size >= SiteSetting.min_flags_staff_visibility && last_notified_id.to_i < flag_ids.max if flag_ids.size > 0 && last_notified_id.to_i < flag_ids.max
usernames = active_moderator_usernames usernames = active_moderator_usernames
mentions = usernames.size > 0 ? "@#{usernames.join(', @')} " : "" mentions = usernames.size > 0 ? "@#{usernames.join(', @')} " : ""

View File

@ -5,7 +5,7 @@ describe Jobs::PendingFlagsReminder do
before { SiteSetting.notify_about_flags_after = 0 } before { SiteSetting.notify_about_flags_after = 0 }
it "never notifies" do it "never notifies" do
PostAction.stubs(:flagged_posts_count).returns(1) Fabricate(:flag, created_at: 50.hours.ago)
PostCreator.expects(:create).never PostCreator.expects(:create).never
described_class.new.execute({}) described_class.new.execute({})
end end
@ -23,15 +23,13 @@ describe Jobs::PendingFlagsReminder do
it "doesn't send message when flags are less than 48 hours old" do it "doesn't send message when flags are less than 48 hours old" do
Fabricate(:flag, created_at: 47.hours.ago) Fabricate(:flag, created_at: 47.hours.ago)
PostAction.stubs(:flagged_posts_count).returns(1)
PostCreator.expects(:create).never PostCreator.expects(:create).never
described_class.new.execute({}) described_class.new.execute({})
end end
it "doesn't send a message if there are no new flags older than 48 hours old" do it "doesn't send a message if there are no new flags older than 48 hours old" do
old_flag = Fabricate(:flag, created_at: 50.hours.ago) old_flag = Fabricate(:flag, created_at: 50.hours.ago)
new_flag = Fabricate(:flag, created_at: 47.hours.ago) Fabricate(:flag, created_at: 47.hours.ago)
PostAction.stubs(:flagged_posts_count).returns(2)
job = described_class.new job = described_class.new
job.last_notified_id = old_flag.id job.last_notified_id = old_flag.id
PostCreator.expects(:create).never PostCreator.expects(:create).never
@ -42,14 +40,21 @@ describe Jobs::PendingFlagsReminder do
it "doesn't send a message when min_flags_staff_visibility is not met" do it "doesn't send a message when min_flags_staff_visibility is not met" do
SiteSetting.min_flags_staff_visibility = 2 SiteSetting.min_flags_staff_visibility = 2
Fabricate(:flag, created_at: 49.hours.ago) Fabricate(:flag, created_at: 49.hours.ago)
PostAction.stubs(:flagged_posts_count).returns(1) Fabricate(:flag, created_at: 51.hours.ago)
PostCreator.expects(:create).never PostCreator.expects(:create).never
described_class.new.execute({}) described_class.new.execute({})
end end
it "sends a message when min_flags_staff_visibility is met" do
SiteSetting.min_flags_staff_visibility = 2
f = Fabricate(:flag, created_at: 49.hours.ago)
Fabricate(:flag, post: f.post, created_at: 51.hours.ago)
PostCreator.expects(:create).once.returns(true)
described_class.new.execute({})
end
it "sends message when there is a flag older than 48 hours" do it "sends message when there is a flag older than 48 hours" do
Fabricate(:flag, created_at: 49.hours.ago) Fabricate(:flag, created_at: 49.hours.ago)
PostAction.stubs(:flagged_posts_count).returns(1)
PostCreator.expects(:create).once.returns(true) PostCreator.expects(:create).once.returns(true)
described_class.new.execute({}) described_class.new.execute({})
end end