From f2c64a35805713ab42dc6dd95f7041d38011fe20 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Thu, 11 Feb 2016 11:16:09 +0800 Subject: [PATCH] FIX: Client settings were not being published. --- lib/site_setting_extension.rb | 2 +- spec/components/site_setting_extension_spec.rb | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/site_setting_extension.rb b/lib/site_setting_extension.rb index 7eb33e2b8..a6a46d639 100644 --- a/lib/site_setting_extension.rb +++ b/lib/site_setting_extension.rb @@ -151,7 +151,7 @@ module SiteSettingExtension # just like a setting, except that it is available in javascript via DiscourseSession def client_setting(name, default = nil, opts = {}) setting(name, default, opts) - client_settings << name + client_settings << name.to_sym end def settings_hash diff --git a/spec/components/site_setting_extension_spec.rb b/spec/components/site_setting_extension_spec.rb index 390c98fa2..8d9fd2eb8 100644 --- a/spec/components/site_setting_extension_spec.rb +++ b/spec/components/site_setting_extension_spec.rb @@ -19,7 +19,7 @@ describe SiteSettingExtension do end end end - + let :provider_local do SiteSettings::LocalProcessProvider.new end @@ -140,6 +140,17 @@ describe SiteSettingExtension do settings.set("test_setting", 12) expect(settings.test_setting).to eq(12) end + + it "should publish changes to clients" do + settings.setting("test_setting", 100) + settings.client_setting("test_setting") + + messages = MessageBus.track_publish do + settings.test_setting = 88 + end + + expect(messages.map(&:channel).include?('/client_settings')).to eq(true) + end end end