2019-04-30 10:27:42 +10:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2022-07-28 05:27:38 +03:00
|
|
|
RSpec.describe Jobs::PendingUsersReminder do
|
2023-01-09 11:18:21 +00:00
|
|
|
context "when must_approve_users is true" do
|
2013-08-26 16:15:59 -04:00
|
|
|
before do
|
2015-11-20 15:32:08 -05:00
|
|
|
SiteSetting.must_approve_users = true
|
|
|
|
Jobs::PendingUsersReminder.any_instance.stubs(:previous_newest_username).returns(nil)
|
2013-08-26 16:15:59 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
it "doesn't send a message to anyone when there are no pending users" do
|
2014-07-16 17:53:44 -04:00
|
|
|
PostCreator.expects(:create).never
|
2013-08-26 16:15:59 -04:00
|
|
|
Jobs::PendingUsersReminder.new.execute({})
|
|
|
|
end
|
|
|
|
|
2022-07-27 18:14:14 +02:00
|
|
|
context "when there are pending users" do
|
2024-01-25 14:28:26 +08:00
|
|
|
before { Fabricate(:moderator, approved: true, approved_by_id: -1, approved_at: 1.week.ago) }
|
2015-11-20 16:05:57 -05:00
|
|
|
|
2021-06-24 10:02:56 -03:00
|
|
|
it "sends a message if user was created more than pending_users_reminder_delay minutes ago" do
|
|
|
|
SiteSetting.pending_users_reminder_delay_minutes = 8
|
|
|
|
Fabricate(:user, created_at: 9.minutes.ago)
|
2015-11-20 16:05:57 -05:00
|
|
|
PostCreator.expects(:create).once
|
|
|
|
Jobs::PendingUsersReminder.new.execute({})
|
|
|
|
end
|
|
|
|
|
2021-06-24 10:02:56 -03:00
|
|
|
it "doesn't send a message if user was created less than pending_users_reminder_delay minutes ago" do
|
|
|
|
SiteSetting.pending_users_reminder_delay_minutes = 8
|
|
|
|
Fabricate(:user, created_at: 2.minutes.ago)
|
2015-11-20 16:05:57 -05:00
|
|
|
PostCreator.expects(:create).never
|
|
|
|
Jobs::PendingUsersReminder.new.execute({})
|
|
|
|
end
|
|
|
|
|
|
|
|
it "doesn't send a message if pending_users_reminder_delay is -1" do
|
2021-06-24 10:02:56 -03:00
|
|
|
SiteSetting.pending_users_reminder_delay_minutes = -1
|
|
|
|
Fabricate(:user, created_at: 24.hours.ago)
|
2015-11-20 16:05:57 -05:00
|
|
|
PostCreator.expects(:create).never
|
|
|
|
Jobs::PendingUsersReminder.new.execute({})
|
|
|
|
end
|
2017-12-13 18:48:46 -08:00
|
|
|
|
|
|
|
it "sets the correct pending user count in the notification" do
|
2021-06-24 10:02:56 -03:00
|
|
|
SiteSetting.pending_users_reminder_delay_minutes = 8
|
|
|
|
Fabricate(:user, created_at: 9.minutes.ago)
|
2023-01-09 11:18:21 +00:00
|
|
|
PostCreator.expects(:create).with(
|
|
|
|
Discourse.system_user,
|
|
|
|
has_entries(title: "1 user waiting for approval"),
|
|
|
|
)
|
2017-12-13 18:48:46 -08:00
|
|
|
Jobs::PendingUsersReminder.new.execute({})
|
|
|
|
end
|
2013-08-26 16:15:59 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-01-09 11:18:21 +00:00
|
|
|
context "when must_approve_users is false" do
|
|
|
|
before { SiteSetting.must_approve_users = false }
|
2013-08-26 16:15:59 -04:00
|
|
|
|
|
|
|
it "doesn't send a message to anyone when there are pending users" do
|
|
|
|
AdminUserIndexQuery.any_instance.stubs(:find_users_query).returns(stub_everything(count: 1))
|
2014-07-16 17:53:44 -04:00
|
|
|
PostCreator.expects(:create).never
|
2013-08-26 16:15:59 -04:00
|
|
|
Jobs::PendingUsersReminder.new.execute({})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|