mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Add auto _map extension for simple/compact list SiteSettings (#20888)
Similar to the _map added for group_list SiteSettings in
e62e93f83a, this commit adds
the same extension for simple and compact `list` type SiteSettings,
so developers do not have to do the `.to_s.split("|")` dance
themselves all the time.
For example:
```
SiteSetting.markdown_linkify_tlds
=> "com|net|org|io|onion|co|tv|ru|cn|us|uk|me|de|fr|fi|gov|ddd"
SiteSetting.markdown_linkify_tlds_map
=> ["com", "net", "org", "io", "onion", "co", "tv", "ru", "cn", "us", "uk", "me", "de", "fr", "fi", "gov"]
```
This commit is contained in:
@@ -853,4 +853,36 @@ RSpec.describe SiteSettingExtension do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "_map extension for list settings" do
|
||||
it "handles splitting group_list settings" do
|
||||
SiteSetting.personal_message_enabled_groups = "1|2"
|
||||
expect(SiteSetting.personal_message_enabled_groups_map).to eq([1, 2])
|
||||
end
|
||||
|
||||
it "handles splitting compact list settings" do
|
||||
SiteSetting.markdown_linkify_tlds = "com|net"
|
||||
expect(SiteSetting.markdown_linkify_tlds_map).to eq(%w[com net])
|
||||
end
|
||||
|
||||
it "handles splitting simple list settings" do
|
||||
SiteSetting.ga_universal_auto_link_domains = "test.com|xy.com"
|
||||
expect(SiteSetting.ga_universal_auto_link_domains_map).to eq(%w[test.com xy.com])
|
||||
end
|
||||
|
||||
it "does not handle splitting secret list settings" do
|
||||
SiteSetting.discourse_connect_provider_secrets = "test|secret1\ntest2|secret2"
|
||||
expect(SiteSetting.respond_to?(:discourse_connect_provider_secrets_map)).to eq(false)
|
||||
end
|
||||
|
||||
it "handles null values for settings" do
|
||||
SiteSetting.ga_universal_auto_link_domains = nil
|
||||
SiteSetting.pm_tags_allowed_for_groups = nil
|
||||
SiteSetting.exclude_rel_nofollow_domains = nil
|
||||
|
||||
expect(SiteSetting.ga_universal_auto_link_domains_map).to eq([])
|
||||
expect(SiteSetting.pm_tags_allowed_for_groups_map).to eq([])
|
||||
expect(SiteSetting.exclude_rel_nofollow_domains_map).to eq([])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user