2022-02-17 22:52:14 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2022-08-08 22:05:41 +08:00
|
|
|
RSpec.describe DistributedCache do
|
|
|
|
let(:cache) { described_class.new("mytest") }
|
2022-02-17 22:52:14 +08:00
|
|
|
|
|
|
|
it "can defer_get_set" do
|
|
|
|
messages =
|
|
|
|
MessageBus.track_publish("/distributed_hash") { cache.defer_get_set("key") { "value" } }
|
|
|
|
expect(messages.size).to eq(1)
|
|
|
|
expect(cache["key"]).to eq("value")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "works correctly for nil values" do
|
|
|
|
block_called_counter = 0
|
|
|
|
messages =
|
|
|
|
MessageBus.track_publish("/distributed_hash") do
|
|
|
|
2.times do
|
|
|
|
cache.defer_get_set("key") do
|
|
|
|
block_called_counter += 1
|
|
|
|
nil
|
2023-01-09 19:18:21 +08:00
|
|
|
end
|
2022-02-17 22:52:14 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
expect(block_called_counter).to eq(1)
|
|
|
|
expect(messages.size).to eq(1)
|
|
|
|
expect(cache["key"]).to eq(nil)
|
|
|
|
end
|
|
|
|
end
|