discourse/spec/multisite/distributed_cache_spec.rb
David Taylor c9dab6fd08
DEV: Automatically require 'rails_helper' in all specs (#16077)
It's very easy to forget to add `require 'rails_helper'` at the top of every core/plugin spec file, and omissions can cause some very confusing/sporadic errors.

By setting this flag in `.rspec`, we can remove the need for `require 'rails_helper'` entirely.
2022-03-01 17:50:50 +00:00

31 lines
890 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) do
cache1['second'] = true
end.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