Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
fw42 committed Jul 5, 2016
1 parent f2c97b2 commit 3d84e86
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions test/worker_test.rb
Expand Up @@ -627,33 +627,41 @@ def self.perform
end

it "prunes dead workers with heartbeat older than prune interval" do
assert_equal({}, Resque::Worker.all_heartbeats)
now = Time.now

workerA = Resque::Worker.new(:jobs)
workerA.instance_variable_set(:@to_s, "bar:3:jobs")
workerA.to_s = "bar:3:jobs"
workerA.register_worker
workerA.heartbeat!(now - Resque.prune_interval - 1)

assert_equal 1, Resque.workers.size
assert Resque::Worker.all_heartbeats.key?(workerA.to_s)

workerB = Resque::Worker.new(:jobs)
workerB.instance_variable_set(:@to_s, "foo:5:jobs")
workerB.to_s = "foo:5:jobs"
workerB.register_worker
workerB.heartbeat!(now)

assert_equal 2, Resque.workers.size
assert Resque::Worker.all_heartbeats.key?(workerB.to_s)
assert_equal [workerA], Resque::Worker.all_workers_with_expired_heartbeats

@worker.prune_dead_workers

assert_equal 1, Resque.workers.size
refute Resque::Worker.all_heartbeats.key?(workerA.to_s)
assert Resque::Worker.all_heartbeats.key?(workerB.to_s)
assert_equal [], Resque::Worker.all_workers_with_expired_heartbeats
end

it "does not prune workers that haven't set a heartbeat" do
workerA = Resque::Worker.new(:jobs)
workerA.instance_variable_set(:@to_s, "bar:3:jobs")
workerA.to_s = "bar:3:jobs"
workerA.register_worker

assert_equal 1, Resque.workers.size
assert_equal({}, Resque::Worker.all_heartbeats)

@worker.prune_dead_workers

Expand Down

0 comments on commit 3d84e86

Please sign in to comment.