# frozen_string_literal: true RSpec.describe "DistributedCache extensions" do let(:cache) { DistributedCache.new('mytest') } it "can defer_get_set" do messages = MessageBus.track_publish("/distributed_hash") do cache.defer_get_set("key") { "value" } end 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 end end end expect(block_called_counter).to eq(1) expect(messages.size).to eq(1) expect(cache["key"]).to eq(nil) end end