model/config: filtering should work with structs too (#29663)

Этот коммит содержится в:
Ibrahim Serdar Acikgoz
2024-12-20 19:29:02 +01:00
коммит произвёл GitHub
родитель 9e01424b15
Коммит 5e7e441623
2 изменённых файлов: 87 добавлений и 5 удалений

Просмотреть файл

@@ -1559,7 +1559,7 @@ func TestConfigFilteredByTag(t *testing.T) {
c := Config{}
c.SetDefaults()
cfgMap := structToMapFilteredByTag(c, ConfigAccessTagType, ConfigAccessTagCloudRestrictable)
cfgMap := configToMapFilteredByTag(c, ConfigAccessTagType, ConfigAccessTagCloudRestrictable)
// Remove entire sections but the map is still there
clusterSettings, ok := cfgMap["SqlSettings"].(map[string]any)
@@ -2088,4 +2088,63 @@ func TestFilterConfig(t *testing.T) {
require.NoError(t, err)
require.Equal(t, 1.0, m["PluginSettings"].(map[string]any)["Plugins"].(map[string]any)["com.mattermost.plugin-a"].(map[string]any)["setting"])
})
t.Run("should be able to filter specific tag", func(t *testing.T) {
cfg := &Config{}
cfg.SetDefaults()
m, err := FilterConfig(cfg, ConfigFilterOptions{
GetConfigOptions: GetConfigOptions{},
TagFilters: []FilterTag{
{
TagType: ConfigAccessTagType,
TagName: ConfigAccessTagCloudRestrictable,
},
},
})
require.NoError(t, err)
require.NotEmpty(t, m)
fileSettings, ok := m["FileSettings"]
require.True(t, ok)
enableFileAttachments, ok := fileSettings.(map[string]any)["EnableFileAttachments"]
require.True(t, ok)
require.Equal(t, true, enableFileAttachments)
// All fields of SqlSettings are ConfigAccessTagCloudRestrictable
_, ok = m["SqlSettings"]
require.False(t, ok)
})
t.Run("should be able to filter multiple tags", func(t *testing.T) {
cfg := &Config{}
cfg.SetDefaults()
m, err := FilterConfig(cfg, ConfigFilterOptions{
GetConfigOptions: GetConfigOptions{},
TagFilters: []FilterTag{
{
TagType: ConfigAccessTagType,
TagName: "site_file_sharing_and_downloads",
},
{
TagType: ConfigAccessTagType,
TagName: ConfigAccessTagCloudRestrictable,
},
},
})
require.NoError(t, err)
require.NotEmpty(t, m)
fileSettings, ok := m["FileSettings"]
require.True(t, ok)
// EnableFileAttachments has "site_file_sharing_and_downloads" tag
_, ok = fileSettings.(map[string]any)["EnableFileAttachments"]
require.False(t, ok)
// All fields of SqlSettings are ConfigAccessTagCloudRestrictable
_, ok = m["SqlSettings"]
require.False(t, ok)
})
}