2019-04-29 20:27:42 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2022-07-27 22:27:38 -04:00
|
|
|
RSpec.describe Jobs::PurgeExpiredIgnoredUsers do
|
2023-06-21 10:00:19 -04:00
|
|
|
subject(:job) { Jobs::PurgeExpiredIgnoredUsers.new.execute({}) }
|
2019-03-20 06:01:43 -04:00
|
|
|
|
|
|
|
context "with no ignored users" do
|
|
|
|
it "does nothing" do
|
2023-06-21 10:00:19 -04:00
|
|
|
expect { job }.to_not change { IgnoredUser.count }
|
2019-03-20 06:01:43 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "when some ignored users exist" do
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:tarek) { Fabricate(:user, username: "tarek") }
|
|
|
|
fab!(:matt) { Fabricate(:user, username: "matt") }
|
|
|
|
fab!(:john) { Fabricate(:user, username: "john") }
|
2019-03-20 06:01:43 -04:00
|
|
|
|
|
|
|
before do
|
|
|
|
Fabricate(:ignored_user, user: tarek, ignored_user: matt)
|
|
|
|
Fabricate(:ignored_user, user: tarek, ignored_user: john)
|
|
|
|
end
|
|
|
|
|
|
|
|
context "when no expired ignored users" do
|
|
|
|
it "does nothing" do
|
2023-06-21 10:00:19 -04:00
|
|
|
expect { job }.to_not change { IgnoredUser.count }
|
2019-03-20 06:01:43 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2019-03-29 06:14:53 -04:00
|
|
|
context "when there are expired ignored users by expiring_at" do
|
2019-05-06 23:12:20 -04:00
|
|
|
fab!(:fred) { Fabricate(:user, username: "fred") }
|
2019-03-29 06:14:53 -04:00
|
|
|
|
|
|
|
it "purges expired ignored users" do
|
|
|
|
Fabricate(:ignored_user, user: tarek, ignored_user: fred, expiring_at: 1.month.from_now)
|
|
|
|
|
|
|
|
freeze_time(2.months.from_now) do
|
2023-06-21 10:00:19 -04:00
|
|
|
job
|
2019-03-29 06:14:53 -04:00
|
|
|
expect(IgnoredUser.find_by(ignored_user: fred)).to be_nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2019-03-20 06:01:43 -04:00
|
|
|
end
|
|
|
|
end
|