2015-10-11 17:41:23 +08:00
|
|
|
require "rails_helper"
|
2015-06-19 03:46:50 +08:00
|
|
|
|
|
|
|
describe Jobs::PendingQueuedPostReminder do
|
|
|
|
context "notify_about_queued_posts_after is 0" do
|
2017-07-07 14:09:14 +08:00
|
|
|
before { SiteSetting.notify_about_queued_posts_after = 0 }
|
2015-06-19 03:46:50 +08:00
|
|
|
|
|
|
|
it "never emails" do
|
|
|
|
described_class.any_instance.expects(:should_notify_ids).never
|
2017-09-13 05:44:31 +08:00
|
|
|
expect {
|
|
|
|
described_class.new.execute({})
|
|
|
|
}.to_not change { Post.count }
|
2015-06-19 03:46:50 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "notify_about_queued_posts_after is 24" do
|
2017-04-20 04:16:27 +08:00
|
|
|
before do
|
|
|
|
SiteSetting.notify_about_queued_posts_after = 24
|
|
|
|
end
|
2015-06-19 03:46:50 +08:00
|
|
|
|
2017-09-13 05:44:31 +08:00
|
|
|
it "doesn't create system message if there are no queued posts" do
|
2015-06-19 03:46:50 +08:00
|
|
|
described_class.any_instance.stubs(:should_notify_ids).returns([])
|
|
|
|
described_class.any_instance.stubs(:last_notified_id).returns(nil)
|
2017-09-13 05:44:31 +08:00
|
|
|
expect {
|
|
|
|
described_class.new.execute({})
|
|
|
|
}.to_not change { Post.count }
|
2015-06-19 03:46:50 +08:00
|
|
|
end
|
|
|
|
|
2017-09-13 05:44:31 +08:00
|
|
|
it "creates system message if there are new queued posts" do
|
2017-07-28 09:20:09 +08:00
|
|
|
described_class.any_instance.stubs(:should_notify_ids).returns([1, 2])
|
2015-06-19 03:46:50 +08:00
|
|
|
described_class.any_instance.stubs(:last_notified_id).returns(nil)
|
2017-09-13 05:44:31 +08:00
|
|
|
expect {
|
|
|
|
described_class.new.execute({})
|
|
|
|
}.to change { Post.count }.by(1)
|
|
|
|
expect(Topic.where(
|
|
|
|
subtype: TopicSubtype.system_message,
|
|
|
|
title: I18n.t('system_messages.queued_posts_reminder.subject_template', count: 2)
|
|
|
|
).exists?).to eq(true)
|
2015-06-19 03:46:50 +08:00
|
|
|
end
|
|
|
|
|
2017-09-13 05:44:31 +08:00
|
|
|
it "doesn't create system message again about the same posts" do
|
2015-06-19 03:46:50 +08:00
|
|
|
described_class.any_instance.stubs(:should_notify_ids).returns([2])
|
|
|
|
described_class.any_instance.stubs(:last_notified_id).returns(2)
|
2017-09-13 05:44:31 +08:00
|
|
|
expect {
|
|
|
|
described_class.new.execute({})
|
|
|
|
}.to_not change { Post.count }
|
2015-06-19 03:46:50 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|