mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Revert "A safe way to create class variables in a multisite environment."
The approach taken by this interface was flawed. We need a better solution.
This commit is contained in:
@@ -1,67 +0,0 @@
|
||||
require 'rails_helper'
|
||||
require 'multisite_class_var'
|
||||
|
||||
RSpec.describe MultisiteClassVar do
|
||||
|
||||
it "will add the class variables" do
|
||||
class_with_set = Class.new do
|
||||
include MultisiteClassVar
|
||||
multisite_class_var(:class_set) { Set.new }
|
||||
multisite_class_var(:class_array) { Array.new }
|
||||
end
|
||||
|
||||
class_with_set.class_set << 'a'
|
||||
class_with_set.class_array << 'c'
|
||||
|
||||
expect(class_with_set.class_set).to contain_exactly('a')
|
||||
expect(class_with_set.class_array).to contain_exactly('c')
|
||||
end
|
||||
|
||||
context "multisite environment" do
|
||||
let(:conn) { RailsMultisite::ConnectionManagement }
|
||||
|
||||
before do
|
||||
@original_provider = SiteSetting.provider
|
||||
SiteSetting.provider = SiteSettings::DbProvider.new(SiteSetting)
|
||||
conn.config_filename = "spec/fixtures/multisite/two_dbs.yml"
|
||||
conn.load_settings!
|
||||
conn.remove_class_variable(:@@current_db)
|
||||
end
|
||||
|
||||
after do
|
||||
conn.clear_settings!
|
||||
[:@@db_spec_cache, :@@host_spec_cache, :@@default_spec].each do |class_variable|
|
||||
conn.remove_class_variable(class_variable)
|
||||
end
|
||||
conn.set_current_db
|
||||
SiteSetting.provider = @original_provider
|
||||
end
|
||||
|
||||
it "keeps the variable specific to the current site" do
|
||||
class_with_set = Class.new do
|
||||
include MultisiteClassVar
|
||||
multisite_class_var(:class_set) { Set.new }
|
||||
end
|
||||
|
||||
conn.with_connection('default') do
|
||||
expect(class_with_set.class_set).to be_blank
|
||||
class_with_set.class_set << 'item0'
|
||||
end
|
||||
|
||||
conn.with_connection('second') do
|
||||
expect(class_with_set.class_set).to be_blank
|
||||
class_with_set.class_set << 'item1'
|
||||
end
|
||||
|
||||
conn.with_connection('default') do
|
||||
expect(class_with_set.class_set).to contain_exactly('item0')
|
||||
end
|
||||
|
||||
conn.with_connection('second') do
|
||||
expect(class_with_set.class_set).to contain_exactly('item1')
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user