mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
DEV: the ability to define setting areas (#28570)
A new setting attribute is used to define the areas (separated by `|`). In addition, endpoint `/admin/config/site_settings.json` accepts new `filter_area` data.
This commit is contained in:

committed by
GitHub

parent
050c665160
commit
7577231ba2
@ -490,6 +490,28 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
end
|
||||
|
||||
describe "a setting with an area" do
|
||||
before do
|
||||
settings.setting(:test_setting, 88, area: "flags")
|
||||
settings.setting(:test_setting2, 89, area: "flags")
|
||||
settings.setting(:test_setting4, 90)
|
||||
settings.refresh!
|
||||
end
|
||||
|
||||
it "should allow to filter by area" do
|
||||
expect(settings.all_settings(filter_area: "flags").map { |s| s[:setting].to_sym }).to eq(
|
||||
%i[default_locale test_setting test_setting2],
|
||||
)
|
||||
end
|
||||
|
||||
it "raised an error when area is invalid" do
|
||||
expect {
|
||||
settings.setting(:test_setting, 89, area: "invalid")
|
||||
settings.refresh!
|
||||
}.to raise_error(Discourse::InvalidParameters)
|
||||
end
|
||||
end
|
||||
|
||||
describe "setting with a validator" do
|
||||
before do
|
||||
settings.setting(:validated_setting, "info@example.com", type: "email")
|
||||
|
Reference in New Issue
Block a user