mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
DEV: add a plugin modifier to change hidden site settings (#24104)
Plugins can use a new modifier to change which site settings are hidden using the :hidden_site_settings modifier. For example: register_modifier(:hidden_site_settings) do |hidden| (hidden + [:invite_only, :login_required]).uniq end
This commit is contained in:
24
spec/lib/site_settings/hidden_provider_spec.rb
Normal file
24
spec/lib/site_settings/hidden_provider_spec.rb
Normal file
@ -0,0 +1,24 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe SiteSettings::HiddenProvider do
|
||||
let(:provider_local) { SiteSettings::LocalProcessProvider.new }
|
||||
let(:settings) { new_settings(provider_local) }
|
||||
let(:hidden_provider) { SiteSettings::HiddenProvider.new }
|
||||
|
||||
describe "all" do
|
||||
after { DiscoursePluginRegistry.clear_modifiers! }
|
||||
|
||||
it "can return defaults" do
|
||||
hidden_provider.add_hidden(:secret_setting)
|
||||
hidden_provider.add_hidden(:internal_thing)
|
||||
expect(hidden_provider.all).to contain_exactly(:secret_setting, :internal_thing)
|
||||
end
|
||||
|
||||
it "can return results from modifiers" do
|
||||
hidden_provider.add_hidden(:secret_setting)
|
||||
plugin = Plugin::Instance.new
|
||||
plugin.register_modifier(:hidden_site_settings) { |defaults| defaults + [:other_setting] }
|
||||
expect(hidden_provider.all).to contain_exactly(:secret_setting, :other_setting)
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user