discourse/spec/multisite/distributed_cache_spec.rb

32 lines
905 B
Ruby

# frozen_string_literal: true
RSpec.describe "Multisite SiteSettings", type: :multisite do
def cache(name, namespace: true)
DistributedCache.new(name, namespace: namespace)
end
context "without namespace" do
let(:cache1) { cache("test", namespace: false) }
it "does not leak state across multisite" do
cache1["default"] = true
expect(cache1.hash).to eq("default" => true)
test_multisite_connection("second") do
message =
MessageBus
.track_publish(DistributedCache::Manager::CHANNEL_NAME) { cache1["second"] = true }
.first
expect(message.data[:hash_key]).to eq("test")
expect(message.data[:op]).to eq(:set)
expect(message.data[:key]).to eq("second")
expect(message.data[:value]).to eq(true)
end
expect(cache1.hash).to eq("default" => true, "second" => true)
end
end
end