2019-04-29 20:27:42 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2022-07-27 22:27:38 -04:00
|
|
|
RSpec.describe Jobs::ActivationReminderEmails do
|
2019-04-10 11:40:11 -04:00
|
|
|
before { Jobs.run_immediately! }
|
|
|
|
|
|
|
|
# should be between 2 and 3 days
|
|
|
|
let(:created_at) { 50.hours.ago }
|
2019-04-10 10:53:52 -04:00
|
|
|
|
|
|
|
it "should email inactive users" do
|
2019-04-10 11:40:11 -04:00
|
|
|
user = Fabricate(:user, active: false, created_at: created_at)
|
2019-04-10 10:53:52 -04:00
|
|
|
|
|
|
|
expect { described_class.new.execute({}) }.to change { ActionMailer::Base.deliveries.size }.by(
|
2023-01-09 06:18:21 -05:00
|
|
|
1,
|
2019-04-10 10:53:52 -04:00
|
|
|
).and change { user.email_tokens.count }.by(1)
|
2022-05-16 09:21:33 -04:00
|
|
|
|
|
|
|
expect(user.custom_fields["activation_reminder"]).to eq("t")
|
2022-07-19 10:03:03 -04:00
|
|
|
expect { described_class.new.execute({}) }.not_to change { ActionMailer::Base.deliveries.size }
|
2022-05-16 09:21:33 -04:00
|
|
|
|
|
|
|
user.activate
|
|
|
|
expect(user.reload.custom_fields["activation_reminder"]).to eq(nil)
|
2019-04-10 10:53:52 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
it "should not email active users" do
|
2019-04-10 11:40:11 -04:00
|
|
|
user = Fabricate(:user, active: true, created_at: created_at)
|
|
|
|
|
|
|
|
expect { described_class.new.execute({}) }.to not_change {
|
2022-07-19 10:03:03 -04:00
|
|
|
ActionMailer::Base.deliveries.size
|
|
|
|
}.and not_change { user.email_tokens.count }
|
2019-04-10 11:40:11 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
it "should not email staged users" do
|
|
|
|
user = Fabricate(:user, active: false, staged: true, created_at: created_at)
|
2019-04-10 10:53:52 -04:00
|
|
|
|
|
|
|
expect { described_class.new.execute({}) }.to not_change {
|
2022-07-19 10:03:03 -04:00
|
|
|
ActionMailer::Base.deliveries.size
|
|
|
|
}.and not_change { user.email_tokens.count }
|
2019-04-10 10:53:52 -04:00
|
|
|
end
|
|
|
|
end
|