# frozen_string_literal: true RSpec.describe "Multisite SiteSettings", type: :multisite do before do @original_provider = SiteSetting.provider SiteSetting.provider = SiteSettings::DbProvider.new(SiteSetting) end after { SiteSetting.provider = @original_provider } describe "#default_locale" do it "should return the right locale" do test_multisite_connection("default") { expect(SiteSetting.default_locale).to eq("en") } test_multisite_connection("second") do SiteSetting.default_locale = "zh_TW" expect(SiteSetting.default_locale).to eq("zh_TW") end test_multisite_connection("default") do expect(SiteSetting.default_locale).to eq("en") SiteSetting.default_locale = "ja" expect(SiteSetting.default_locale).to eq("ja") end test_multisite_connection("second") { expect(SiteSetting.default_locale).to eq("zh_TW") } end end describe "transforming defaults from plugin" do class TestFilterPlugInstance < Plugin::Instance end let(:plugin_instance) { TestFilterPlugInstance.new } it "can change defaults" do test_multisite_connection("default") { expect(SiteSetting.title).to eq("Discourse") } plugin_instance.register_modifier(:site_setting_defaults) do |defaults| defaults.merge({ title: "title for #{RailsMultisite::ConnectionManagement.current_db}" }) end test_multisite_connection("default") do SiteSetting.refresh! expect(SiteSetting.title).to eq("title for default") SiteSetting.title = "overridden default title" expect(SiteSetting.title).to eq("overridden default title") end test_multisite_connection("second") do SiteSetting.refresh! expect(SiteSetting.title).to eq("title for second") SiteSetting.title = "overridden second title" expect(SiteSetting.title).to eq("overridden second title") end ensure DiscoursePluginRegistry.reset! test_multisite_connection("default") { SiteSetting.refresh! } test_multisite_connection("second") { SiteSetting.refresh! } end end end