mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 10:29:35 +08:00
9ba8bfb1aa
This commit introduces a new helper to enable transactional fixtures when testing multisite. This would show up as tests that passed the first time then failed the second time due to stale data being leftover.
31 lines
883 B
Ruby
31 lines
883 B
Ruby
require 'rails_helper'
|
|
|
|
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
|