summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Niedzielski <adamsunday@gmail.com>2016-08-04 23:36:50 +0200
committerAdam Niedzielski <adamsunday@gmail.com>2016-08-04 23:36:50 +0200
commit671d247eaad5536962201a942b9af6b26e02299d (patch)
tree6c9e01a5bc8242dba60983a55ae9fecf45963da6
parent8354810f103a8e82cb5d2b77049b5b3c9b298fa9 (diff)
downloadgitlab-ce-671d247eaad5536962201a942b9af6b26e02299d.tar.gz
Write test for RemoveExpiredMembersWorker.
-rw-r--r--spec/workers/remove_expired_members_worker_spec.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/workers/remove_expired_members_worker_spec.rb b/spec/workers/remove_expired_members_worker_spec.rb
new file mode 100644
index 00000000000..086f6e7c301
--- /dev/null
+++ b/spec/workers/remove_expired_members_worker_spec.rb
@@ -0,0 +1,25 @@
+require 'spec_helper'
+
+describe RemoveExpiredMembersWorker do
+ let!(:worker) { RemoveExpiredMembersWorker.new }
+ let!(:expired_member) { create(:project_member, expires_at: 1.hour.ago) }
+ let!(:member_expiring_in_future) { create(:project_member, expires_at: 10.days.from_now) }
+ let!(:non_expiring_member) { create(:project_member, expires_at: nil) }
+
+ describe "#perform" do
+ it "removes expired members" do
+ expect { worker.perform }.to change { Member.count }.by(-1)
+ expect(Member.find_by(id: expired_member.id)).to be_nil
+ end
+
+ it "leaves members who expire in the future" do
+ worker.perform
+ expect(member_expiring_in_future.reload).to be_present
+ end
+
+ it "leaves members who do not expire at all" do
+ worker.perform
+ expect(non_expiring_member.reload).to be_present
+ end
+ end
+end