Rearrange specs for frequency

This commit is contained in:
Nat 2023-08-08 13:27:10 +08:00
parent 8f04d82ae7
commit 6c3fd0f088
No known key found for this signature in database
GPG Key ID: C095C891379A319E
1 changed files with 43 additions and 41 deletions

View File

@ -36,47 +36,6 @@ RSpec.describe Jobs::EnqueueReminders do
assert_reminders_enqueued(0)
end
it "does not enqueue a reminder if it's too soon" do
user.upsert_custom_fields(PendingAssignsReminder::REMINDED_AT => 2.days.ago)
assign_multiple_tasks_to(user)
assert_reminders_enqueued(0)
end
it "enqueues a reminder if the user was reminded more than a month ago" do
user.upsert_custom_fields(PendingAssignsReminder::REMINDED_AT => 31.days.ago)
assign_multiple_tasks_to(user)
assert_reminders_enqueued(1)
end
it "does not enqueue reminders if the remind frequency is set to never" do
SiteSetting.remind_assigns_frequency = 0
assign_multiple_tasks_to(user)
assert_reminders_enqueued(0)
end
it "does not enqueue reminders if the topic was just assigned to the user" do
just_assigned = DateTime.now
assign_multiple_tasks_to(user, assigned_on: just_assigned)
assert_reminders_enqueued(0)
end
it "enqueues a reminder when the user overrides the global frequency" do
SiteSetting.remind_assigns_frequency = 0
user.custom_fields.merge!(
PendingAssignsReminder::REMINDERS_FREQUENCY =>
RemindAssignsFrequencySiteSettings::DAILY_MINUTES,
)
user.save_custom_fields
assign_multiple_tasks_to(user)
assert_reminders_enqueued(1)
end
it "doesn't count assigns from deleted topics" do
deleted_post = Fabricate(:post)
assign_one_task_to(user, post: deleted_post)
@ -87,6 +46,49 @@ RSpec.describe Jobs::EnqueueReminders do
assert_reminders_enqueued(0)
end
describe "assignment frequency" do
it "does not enqueue a reminder if it's too soon" do
user.upsert_custom_fields(PendingAssignsReminder::REMINDED_AT => 1.days.ago)
assign_multiple_tasks_to(user)
assert_reminders_enqueued(0)
end
it "enqueues a reminder if the user was reminded more than a month ago" do
user.upsert_custom_fields(PendingAssignsReminder::REMINDED_AT => 31.days.ago)
assign_multiple_tasks_to(user)
assert_reminders_enqueued(1)
end
it "does not enqueue reminders if the remind frequency is set to never" do
SiteSetting.remind_assigns_frequency = 0
assign_multiple_tasks_to(user)
assert_reminders_enqueued(0)
end
it "does not enqueue reminders if the topic was just assigned to the user" do
just_assigned = DateTime.now
assign_multiple_tasks_to(user, assigned_on: just_assigned)
assert_reminders_enqueued(0)
end
it "enqueues a reminder when the user overrides the global frequency" do
SiteSetting.remind_assigns_frequency = 0
user.custom_fields.merge!(
PendingAssignsReminder::REMINDERS_FREQUENCY =>
RemindAssignsFrequencySiteSettings::DAILY_MINUTES,
)
user.save_custom_fields
assign_multiple_tasks_to(user)
assert_reminders_enqueued(1)
end
end
def assert_reminders_enqueued(expected_amount)
expect { subject.execute({}) }.to change(Jobs::RemindUser.jobs, :size).by(expected_amount)
end