Skip to content

Commit 50003ac

Browse files
committed
Fix unmemoized method
1 parent 242fd15 commit 50003ac

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

app/models/solid_queue/queue.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def size
4141
end
4242

4343
def latency
44-
@latency = begin
44+
@latency ||= begin
4545
now = Time.current
4646
oldest_enqueued_at = ReadyExecution.queued_as(name).minimum(:created_at) || now
4747

test/unit/queue_test.rb

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,28 @@ class QueueTest < ActiveSupport::TestCase
4848
assert_in_delta 5.minutes.to_i, @background_queue.latency, 1.second.to_i
4949
assert_equal 0, @default_queue.latency
5050

51+
@background_queue = SolidQueue::Queue.find_by_name("background")
52+
@default_queue = SolidQueue::Queue.find_by_name("default")
5153
travel_to 10.minutes.from_now
5254

5355
assert_in_delta 15.minutes.to_i, @background_queue.latency, 1.second.to_i
5456
assert_equal 0, @default_queue.latency
5557
end
5658

59+
test "returns memoized latency after the first call" do
60+
travel_to 5.minutes.from_now
61+
62+
assert_in_delta 5.minutes.to_i, @background_queue.latency, 1.second.to_i
63+
64+
travel_to 10.minutes.from_now
65+
66+
assert_in_delta 5.minutes.to_i, @background_queue.latency, 1.second.to_i
67+
end
68+
5769
test "return human latency on each queue" do
5870
travel_to 5.minutes.from_now
5971

60-
assert_match /5 minutes/, @background_queue.human_latency
61-
assert_match /0 seconds/, @default_queue.human_latency
72+
assert_match (/5 minutes/), @background_queue.human_latency
73+
assert_match (/0 seconds/), @default_queue.human_latency
6274
end
6375
end

0 commit comments

Comments
 (0)