mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 02:31:26 +08:00
DEV: Apply syntax_tree formatting to spec/*
This commit is contained in:
@ -11,19 +11,13 @@ RSpec.describe SiteSettingExtension do
|
||||
# TODO: refactor SiteSettingExtension not to rely on statics in
|
||||
# DefaultsProvider
|
||||
#
|
||||
before do
|
||||
MessageBus.off
|
||||
end
|
||||
before { MessageBus.off }
|
||||
|
||||
after do
|
||||
MessageBus.on
|
||||
end
|
||||
after { MessageBus.on }
|
||||
|
||||
describe '#types' do
|
||||
describe "#types" do
|
||||
context "when verifying enum sequence" do
|
||||
before do
|
||||
@types = SiteSetting.types
|
||||
end
|
||||
before { @types = SiteSetting.types }
|
||||
|
||||
it "'string' should be at 1st position" do
|
||||
expect(@types[:string]).to eq(1)
|
||||
@ -48,24 +42,25 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "Does not leak state cause changes are not linked" do
|
||||
t1 = Thread.new do
|
||||
5.times do
|
||||
settings = new_settings(SiteSettings::LocalProcessProvider.new)
|
||||
settings.setting(:title, 'test')
|
||||
settings.title = 'title1'
|
||||
expect(settings.title).to eq 'title1'
|
||||
|
||||
t1 =
|
||||
Thread.new do
|
||||
5.times do
|
||||
settings = new_settings(SiteSettings::LocalProcessProvider.new)
|
||||
settings.setting(:title, "test")
|
||||
settings.title = "title1"
|
||||
expect(settings.title).to eq "title1"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
t2 = Thread.new do
|
||||
5.times do
|
||||
settings = new_settings(SiteSettings::LocalProcessProvider.new)
|
||||
settings.setting(:title, 'test')
|
||||
settings.title = 'title2'
|
||||
expect(settings.title).to eq 'title2'
|
||||
t2 =
|
||||
Thread.new do
|
||||
5.times do
|
||||
settings = new_settings(SiteSettings::LocalProcessProvider.new)
|
||||
settings.setting(:title, "test")
|
||||
settings.title = "title2"
|
||||
expect(settings.title).to eq "title2"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
t1.join
|
||||
t2.join
|
||||
@ -84,7 +79,6 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "will set to new value if provider changes" do
|
||||
|
||||
settings.setting(:hello, 1)
|
||||
settings.hello = 100
|
||||
expect(settings.hello).to eq(100)
|
||||
@ -131,9 +125,9 @@ RSpec.describe SiteSettingExtension do
|
||||
upload2 = Fabricate(:upload)
|
||||
settings.provider.save(:upload_type, upload2.id, SiteSetting.types[:upload])
|
||||
|
||||
expect do
|
||||
settings.refresh!
|
||||
end.to change { settings.send(:uploads)[:upload_type] }.from(upload).to(nil)
|
||||
expect do settings.refresh! end.to change { settings.send(:uploads)[:upload_type] }.from(
|
||||
upload,
|
||||
).to(nil)
|
||||
|
||||
expect(settings.upload_type).to eq(upload2)
|
||||
end
|
||||
@ -141,11 +135,11 @@ RSpec.describe SiteSettingExtension do
|
||||
it "refreshes the client_settings_json cache" do
|
||||
upload = Fabricate(:upload)
|
||||
settings.setting(:upload_type, upload.id.to_s, type: :upload, client: true)
|
||||
settings.setting(:string_type, 'haha', client: true)
|
||||
settings.setting(:string_type, "haha", client: true)
|
||||
settings.refresh!
|
||||
|
||||
expect(settings.client_settings_json).to eq(
|
||||
%Q|{"default_locale":"#{SiteSetting.default_locale}","upload_type":"#{upload.url}","string_type":"haha"}|
|
||||
%Q|{"default_locale":"#{SiteSetting.default_locale}","upload_type":"#{upload.url}","string_type":"haha"}|,
|
||||
)
|
||||
|
||||
upload.update!(url: "a_new_url")
|
||||
@ -153,7 +147,7 @@ RSpec.describe SiteSettingExtension do
|
||||
settings.refresh!
|
||||
|
||||
expect(settings.client_settings_json).to eq(
|
||||
%Q|{"default_locale":"#{SiteSetting.default_locale}","upload_type":"a_new_url","string_type":"changed"}|
|
||||
%Q|{"default_locale":"#{SiteSetting.default_locale}","upload_type":"a_new_url","string_type":"changed"}|,
|
||||
)
|
||||
end
|
||||
end
|
||||
@ -195,11 +189,20 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "should have the correct desc" do
|
||||
I18n.backend.store_translations(:en, site_settings: { test_setting: "test description <a href='%{base_path}/admin'>/admin</a>" })
|
||||
expect(settings.description(:test_setting)).to eq("test description <a href='/admin'>/admin</a>")
|
||||
I18n.backend.store_translations(
|
||||
:en,
|
||||
site_settings: {
|
||||
test_setting: "test description <a href='%{base_path}/admin'>/admin</a>",
|
||||
},
|
||||
)
|
||||
expect(settings.description(:test_setting)).to eq(
|
||||
"test description <a href='/admin'>/admin</a>",
|
||||
)
|
||||
|
||||
Discourse.stubs(:base_path).returns("/forum")
|
||||
expect(settings.description(:test_setting)).to eq("test description <a href='/forum/admin'>/admin</a>")
|
||||
expect(settings.description(:test_setting)).to eq(
|
||||
"test description <a href='/forum/admin'>/admin</a>",
|
||||
)
|
||||
end
|
||||
|
||||
it "should have the correct default" do
|
||||
@ -242,9 +245,7 @@ RSpec.describe SiteSettingExtension do
|
||||
settings.setting("test_setting", 100)
|
||||
settings.setting("test_setting", nil, client: true)
|
||||
|
||||
message = MessageBus.track_publish('/client_settings') do
|
||||
settings.test_setting = 88
|
||||
end.first
|
||||
message = MessageBus.track_publish("/client_settings") { settings.test_setting = 88 }.first
|
||||
|
||||
expect(message).to be_present
|
||||
end
|
||||
@ -325,9 +326,7 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
context "when overridden" do
|
||||
after do
|
||||
settings.remove_override!(:test_hello?)
|
||||
end
|
||||
after { settings.remove_override!(:test_hello?) }
|
||||
|
||||
it "should have the correct override" do
|
||||
settings.test_hello = true
|
||||
@ -358,7 +357,7 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'int enum' do
|
||||
describe "int enum" do
|
||||
class TestIntEnumClass
|
||||
def self.valid_value?(v)
|
||||
true
|
||||
@ -368,24 +367,22 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
end
|
||||
|
||||
it 'should coerce correctly' do
|
||||
it "should coerce correctly" do
|
||||
settings.setting(:test_int_enum, 1, enum: TestIntEnumClass)
|
||||
settings.test_int_enum = "2"
|
||||
settings.refresh!
|
||||
expect(settings.defaults[:test_int_enum]).to eq(1)
|
||||
expect(settings.test_int_enum).to eq(2)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe 'enum setting' do
|
||||
|
||||
describe "enum setting" do
|
||||
class TestEnumClass
|
||||
def self.valid_value?(v)
|
||||
self.values.include?(v)
|
||||
end
|
||||
def self.values
|
||||
['en']
|
||||
["en"]
|
||||
end
|
||||
def self.translate_names?
|
||||
false
|
||||
@ -397,48 +394,50 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
before do
|
||||
settings.setting(:test_enum, 'en', enum: test_enum_class)
|
||||
settings.setting(:test_enum, "en", enum: test_enum_class)
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
it 'should have the correct default' do
|
||||
expect(settings.test_enum).to eq('en')
|
||||
it "should have the correct default" do
|
||||
expect(settings.test_enum).to eq("en")
|
||||
end
|
||||
|
||||
it 'should not hose all_settings' do
|
||||
it "should not hose all_settings" do
|
||||
expect(settings.all_settings.detect { |s| s[:setting] == :test_enum }).to be_present
|
||||
end
|
||||
|
||||
it 'should report error when being set other values' do
|
||||
expect { settings.test_enum = 'not_in_enum' }.to raise_error(Discourse::InvalidParameters)
|
||||
it "should report error when being set other values" do
|
||||
expect { settings.test_enum = "not_in_enum" }.to raise_error(Discourse::InvalidParameters)
|
||||
end
|
||||
|
||||
context 'when overridden' do
|
||||
context "when overridden" do
|
||||
after :each do
|
||||
settings.remove_override!(:validated_setting)
|
||||
end
|
||||
|
||||
it 'stores valid values' do
|
||||
test_enum_class.expects(:valid_value?).with('fr').returns(true)
|
||||
settings.test_enum = 'fr'
|
||||
expect(settings.test_enum).to eq('fr')
|
||||
it "stores valid values" do
|
||||
test_enum_class.expects(:valid_value?).with("fr").returns(true)
|
||||
settings.test_enum = "fr"
|
||||
expect(settings.test_enum).to eq("fr")
|
||||
end
|
||||
|
||||
it 'rejects invalid values' do
|
||||
test_enum_class.expects(:valid_value?).with('gg').returns(false)
|
||||
expect { settings.test_enum = 'gg' }.to raise_error(Discourse::InvalidParameters)
|
||||
it "rejects invalid values" do
|
||||
test_enum_class.expects(:valid_value?).with("gg").returns(false)
|
||||
expect { settings.test_enum = "gg" }.to raise_error(Discourse::InvalidParameters)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'a setting with a category' do
|
||||
describe "a setting with a category" do
|
||||
before do
|
||||
settings.setting(:test_setting, 88, category: :tests)
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
it "should return the category in all_settings" do
|
||||
expect(settings.all_settings.find { |s| s[:setting] == :test_setting }[:category]).to eq(:tests)
|
||||
expect(settings.all_settings.find { |s| s[:setting] == :test_setting }[:category]).to eq(
|
||||
:tests,
|
||||
)
|
||||
end
|
||||
|
||||
context "when overidden" do
|
||||
@ -453,14 +452,16 @@ RSpec.describe SiteSettingExtension do
|
||||
|
||||
it "should still have the correct category" do
|
||||
settings.test_setting = 102
|
||||
expect(settings.all_settings.find { |s| s[:setting] == :test_setting }[:category]).to eq(:tests)
|
||||
expect(settings.all_settings.find { |s| s[:setting] == :test_setting }[:category]).to eq(
|
||||
:tests,
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "setting with a validator" do
|
||||
before do
|
||||
settings.setting(:validated_setting, "info@example.com", type: 'email')
|
||||
settings.setting(:validated_setting, "info@example.com", type: "email")
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
@ -470,21 +471,21 @@ RSpec.describe SiteSettingExtension do
|
||||
|
||||
it "stores valid values" do
|
||||
EmailSettingValidator.any_instance.expects(:valid_value?).returns(true)
|
||||
settings.validated_setting = 'success@example.com'
|
||||
expect(settings.validated_setting).to eq('success@example.com')
|
||||
settings.validated_setting = "success@example.com"
|
||||
expect(settings.validated_setting).to eq("success@example.com")
|
||||
end
|
||||
|
||||
it "rejects invalid values" do
|
||||
expect {
|
||||
EmailSettingValidator.any_instance.expects(:valid_value?).returns(false)
|
||||
settings.validated_setting = 'nope'
|
||||
settings.validated_setting = "nope"
|
||||
}.to raise_error(Discourse::InvalidParameters)
|
||||
expect(settings.validated_setting).to eq("info@example.com")
|
||||
end
|
||||
|
||||
it "allows blank values" do
|
||||
settings.validated_setting = ''
|
||||
expect(settings.validated_setting).to eq('')
|
||||
settings.validated_setting = ""
|
||||
expect(settings.validated_setting).to eq("")
|
||||
end
|
||||
end
|
||||
|
||||
@ -492,9 +493,7 @@ RSpec.describe SiteSettingExtension do
|
||||
it "raises an error" do
|
||||
settings.setting(:test_setting, 77)
|
||||
settings.refresh!
|
||||
expect {
|
||||
settings.set("provider", "haxxed")
|
||||
}.to raise_error(Discourse::InvalidParameters)
|
||||
expect { settings.set("provider", "haxxed") }.to raise_error(Discourse::InvalidParameters)
|
||||
end
|
||||
end
|
||||
|
||||
@ -505,14 +504,11 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "works correctly" do
|
||||
expect {
|
||||
settings.get("frogs_in_africa")
|
||||
}.to raise_error(Discourse::InvalidParameters)
|
||||
expect { settings.get("frogs_in_africa") }.to raise_error(Discourse::InvalidParameters)
|
||||
|
||||
expect(settings.get(:title)).to eq("Discourse v1")
|
||||
expect(settings.get("title")).to eq("Discourse v1")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe ".set_and_log" do
|
||||
@ -523,9 +519,9 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "raises an error when set for an invalid setting name" do
|
||||
expect {
|
||||
settings.set_and_log("provider", "haxxed")
|
||||
}.to raise_error(Discourse::InvalidParameters)
|
||||
expect { settings.set_and_log("provider", "haxxed") }.to raise_error(
|
||||
Discourse::InvalidParameters,
|
||||
)
|
||||
end
|
||||
|
||||
it "scrubs secret setting values from logs" do
|
||||
@ -561,7 +557,7 @@ RSpec.describe SiteSettingExtension do
|
||||
|
||||
describe "hidden" do
|
||||
before do
|
||||
settings.setting(:superman_identity, 'Clark Kent', hidden: true)
|
||||
settings.setting(:superman_identity, "Clark Kent", hidden: true)
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
@ -578,22 +574,24 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "is present in all_settings when we ask for hidden" do
|
||||
expect(settings.all_settings(include_hidden: true).find { |s| s[:setting] == :superman_identity }).to be_present
|
||||
expect(
|
||||
settings.all_settings(include_hidden: true).find { |s| s[:setting] == :superman_identity },
|
||||
).to be_present
|
||||
end
|
||||
end
|
||||
|
||||
describe "global override" do
|
||||
context "with default_locale" do
|
||||
it "supports adding a default locale via a global" do
|
||||
global_setting :default_locale, 'zh_CN'
|
||||
settings.default_locale = 'en'
|
||||
expect(settings.default_locale).to eq('zh_CN')
|
||||
global_setting :default_locale, "zh_CN"
|
||||
settings.default_locale = "en"
|
||||
expect(settings.default_locale).to eq("zh_CN")
|
||||
end
|
||||
end
|
||||
|
||||
context "without global setting" do
|
||||
before do
|
||||
settings.setting(:trout_api_key, 'evil')
|
||||
settings.setting(:trout_api_key, "evil")
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
@ -602,27 +600,26 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "can return the default value" do
|
||||
expect(settings.trout_api_key).to eq('evil')
|
||||
expect(settings.trout_api_key).to eq("evil")
|
||||
end
|
||||
|
||||
it "can overwrite the default" do
|
||||
settings.trout_api_key = 'tophat'
|
||||
settings.trout_api_key = "tophat"
|
||||
settings.refresh!
|
||||
expect(settings.trout_api_key).to eq('tophat')
|
||||
expect(settings.trout_api_key).to eq("tophat")
|
||||
end
|
||||
end
|
||||
|
||||
context "with blank global setting" do
|
||||
before do
|
||||
GlobalSetting.stubs(:nada).returns('')
|
||||
settings.setting(:nada, 'nothing')
|
||||
GlobalSetting.stubs(:nada).returns("")
|
||||
settings.setting(:nada, "nothing")
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
it "should return default cause nothing is set" do
|
||||
expect(settings.nada).to eq('nothing')
|
||||
expect(settings.nada).to eq("nothing")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with a false override" do
|
||||
@ -637,36 +634,37 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
|
||||
it "should not trigger any message bus work if you try to set it" do
|
||||
m = MessageBus.track_publish('/site_settings') do
|
||||
settings.bool = true
|
||||
expect(settings.bool).to eq(false)
|
||||
end
|
||||
m =
|
||||
MessageBus.track_publish("/site_settings") do
|
||||
settings.bool = true
|
||||
expect(settings.bool).to eq(false)
|
||||
end
|
||||
expect(m.length).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
context "with global setting" do
|
||||
before do
|
||||
GlobalSetting.stubs(:trout_api_key).returns('purringcat')
|
||||
settings.setting(:trout_api_key, 'evil')
|
||||
GlobalSetting.stubs(:trout_api_key).returns("purringcat")
|
||||
settings.setting(:trout_api_key, "evil")
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
it "should return the global setting instead of default" do
|
||||
expect(settings.trout_api_key).to eq('purringcat')
|
||||
expect(settings.trout_api_key).to eq("purringcat")
|
||||
end
|
||||
|
||||
it "should return the global setting after a refresh" do
|
||||
settings.refresh!
|
||||
expect(settings.trout_api_key).to eq('purringcat')
|
||||
expect(settings.trout_api_key).to eq("purringcat")
|
||||
end
|
||||
|
||||
it "should add the key to the hidden_settings collection" do
|
||||
expect(settings.hidden_settings.include?(:trout_api_key)).to eq(true)
|
||||
|
||||
['', nil].each_with_index do |setting, index|
|
||||
["", nil].each_with_index do |setting, index|
|
||||
GlobalSetting.stubs(:"trout_api_key_#{index}").returns(setting)
|
||||
settings.setting(:"trout_api_key_#{index}", 'evil')
|
||||
settings.setting(:"trout_api_key_#{index}", "evil")
|
||||
settings.refresh!
|
||||
expect(settings.hidden_settings.include?(:"trout_api_key_#{index}")).to eq(false)
|
||||
end
|
||||
@ -680,7 +678,7 @@ RSpec.describe SiteSettingExtension do
|
||||
|
||||
describe "secret" do
|
||||
before do
|
||||
settings.setting(:superman_identity, 'Clark Kent', secret: true)
|
||||
settings.setting(:superman_identity, "Clark Kent", secret: true)
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
@ -699,78 +697,74 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'locale default overrides are respected' do
|
||||
describe "locale default overrides are respected" do
|
||||
before do
|
||||
settings.setting(:test_override, 'default', locale_default: { zh_CN: 'cn' })
|
||||
settings.setting(:test_override, "default", locale_default: { zh_CN: "cn" })
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
after do
|
||||
settings.remove_override!(:test_override)
|
||||
after { settings.remove_override!(:test_override) }
|
||||
|
||||
it "ensures the default cache expired after overriding the default_locale" do
|
||||
expect(settings.test_override).to eq("default")
|
||||
settings.default_locale = "zh_CN"
|
||||
expect(settings.test_override).to eq("cn")
|
||||
end
|
||||
|
||||
it 'ensures the default cache expired after overriding the default_locale' do
|
||||
expect(settings.test_override).to eq('default')
|
||||
settings.default_locale = 'zh_CN'
|
||||
expect(settings.test_override).to eq('cn')
|
||||
end
|
||||
|
||||
it 'returns the saved setting even locale default exists' do
|
||||
expect(settings.test_override).to eq('default')
|
||||
settings.default_locale = 'zh_CN'
|
||||
settings.test_override = 'saved'
|
||||
expect(settings.test_override).to eq('saved')
|
||||
it "returns the saved setting even locale default exists" do
|
||||
expect(settings.test_override).to eq("default")
|
||||
settings.default_locale = "zh_CN"
|
||||
settings.test_override = "saved"
|
||||
expect(settings.test_override).to eq("saved")
|
||||
end
|
||||
end
|
||||
|
||||
describe '.requires_refresh?' do
|
||||
it 'always refresh default_locale always require refresh' do
|
||||
describe ".requires_refresh?" do
|
||||
it "always refresh default_locale always require refresh" do
|
||||
expect(settings.requires_refresh?(:default_locale)).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
describe '.default_locale' do
|
||||
it 'is always loaded' do
|
||||
expect(settings.default_locale).to eq('en')
|
||||
describe ".default_locale" do
|
||||
it "is always loaded" do
|
||||
expect(settings.default_locale).to eq("en")
|
||||
end
|
||||
end
|
||||
|
||||
describe '.default_locale=' do
|
||||
it 'can be changed' do
|
||||
settings.default_locale = 'zh_CN'
|
||||
expect(settings.default_locale).to eq 'zh_CN'
|
||||
describe ".default_locale=" do
|
||||
it "can be changed" do
|
||||
settings.default_locale = "zh_CN"
|
||||
expect(settings.default_locale).to eq "zh_CN"
|
||||
end
|
||||
|
||||
it 'refresh!' do
|
||||
it "refresh!" do
|
||||
settings.expects(:refresh!)
|
||||
settings.default_locale = 'zh_CN'
|
||||
settings.default_locale = "zh_CN"
|
||||
end
|
||||
|
||||
it 'expires the cache' do
|
||||
settings.default_locale = 'zh_CN'
|
||||
it "expires the cache" do
|
||||
settings.default_locale = "zh_CN"
|
||||
expect(Discourse.cache.exist?(SiteSettingExtension.client_settings_cache_key)).to be_falsey
|
||||
end
|
||||
|
||||
it 'refreshes the client' do
|
||||
it "refreshes the client" do
|
||||
Discourse.expects(:request_refresh!)
|
||||
settings.default_locale = 'zh_CN'
|
||||
settings.default_locale = "zh_CN"
|
||||
end
|
||||
end
|
||||
|
||||
describe "get_hostname" do
|
||||
|
||||
it "properly extracts the hostname" do
|
||||
# consider testing this through a public interface, this tests implementation details
|
||||
expect(settings.send(:get_hostname, "discourse.org")).to eq("discourse.org")
|
||||
expect(settings.send(:get_hostname, "@discourse.org")).to eq("discourse.org")
|
||||
expect(settings.send(:get_hostname, "https://discourse.org")).to eq("discourse.org")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe '.all_settings' do
|
||||
describe 'uploads settings' do
|
||||
it 'should return the right values' do
|
||||
describe ".all_settings" do
|
||||
describe "uploads settings" do
|
||||
it "should return the right values" do
|
||||
negative_upload_id = [(Upload.minimum(:id) || 0) - 1, -10].min
|
||||
system_upload = Fabricate(:upload, id: negative_upload_id)
|
||||
settings.setting(:logo, system_upload.id, type: :upload)
|
||||
@ -791,41 +785,39 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
end
|
||||
|
||||
describe '.client_settings_json_uncached' do
|
||||
it 'should return the right json value' do
|
||||
describe ".client_settings_json_uncached" do
|
||||
it "should return the right json value" do
|
||||
upload = Fabricate(:upload)
|
||||
settings.setting(:upload_type, upload.id.to_s, type: :upload, client: true)
|
||||
settings.setting(:string_type, 'haha', client: true)
|
||||
settings.setting(:string_type, "haha", client: true)
|
||||
settings.refresh!
|
||||
|
||||
expect(settings.client_settings_json_uncached).to eq(
|
||||
%Q|{"default_locale":"#{SiteSetting.default_locale}","upload_type":"#{upload.url}","string_type":"haha"}|
|
||||
%Q|{"default_locale":"#{SiteSetting.default_locale}","upload_type":"#{upload.url}","string_type":"haha"}|,
|
||||
)
|
||||
end
|
||||
|
||||
it 'settings with html type are not sanitized' do
|
||||
settings.setting(:with_html, '<script></script>rest', type: :html, client: true)
|
||||
it "settings with html type are not sanitized" do
|
||||
settings.setting(:with_html, "<script></script>rest", type: :html, client: true)
|
||||
|
||||
client_settings = JSON.parse settings.client_settings_json_uncached
|
||||
|
||||
expect(client_settings['with_html']).to eq('<script></script>rest')
|
||||
expect(client_settings["with_html"]).to eq("<script></script>rest")
|
||||
end
|
||||
end
|
||||
|
||||
describe '.setup_methods' do
|
||||
describe 'for uploads site settings' do
|
||||
describe ".setup_methods" do
|
||||
describe "for uploads site settings" do
|
||||
fab!(:upload) { Fabricate(:upload) }
|
||||
fab!(:upload2) { Fabricate(:upload) }
|
||||
|
||||
it 'should return the upload record' do
|
||||
it "should return the upload record" do
|
||||
settings.setting(:some_upload, upload.id.to_s, type: :upload)
|
||||
|
||||
expect(settings.some_upload).to eq(upload)
|
||||
|
||||
# Ensure that we cache the upload record
|
||||
expect(settings.some_upload.object_id).to eq(
|
||||
settings.some_upload.object_id
|
||||
)
|
||||
expect(settings.some_upload.object_id).to eq(settings.some_upload.object_id)
|
||||
|
||||
settings.some_upload = upload2
|
||||
|
||||
|
Reference in New Issue
Block a user