@@ -4121,6 +4121,143 @@ func TestSanitizeJiraConfig(t *testing.T) {
41214121 }
41224122}
41234123
4124+ func TestSanitizeDiscordConfig (t * testing.T ) {
4125+ logger := newNopLogger (t )
4126+
4127+ for _ , tc := range []struct {
4128+ name string
4129+ againstVersion semver.Version
4130+ in * alertmanagerConfig
4131+ golden string
4132+ }{
4133+ {
4134+ name : "Test Username field is dropped in discord config for unsupported versions" ,
4135+ againstVersion : semver.Version {Major : 0 , Minor : 27 },
4136+ in : & alertmanagerConfig {
4137+ Receivers : []* receiver {
4138+ {
4139+ Name : "discord" ,
4140+ DiscordConfigs : []* discordConfig {
4141+ {
4142+ Username : "content" ,
4143+ WebhookURL : "http://example.com" ,
4144+ Message : "test message" ,
4145+ },
4146+ },
4147+ },
4148+ },
4149+ },
4150+ golden : "Discord_username_dropped_in_unsupported_versions_config.golden" ,
4151+ },
4152+ {
4153+ name : "Test Username field add in discord config for supported versions" ,
4154+ againstVersion : semver.Version {Major : 0 , Minor : 28 },
4155+ in : & alertmanagerConfig {
4156+ Receivers : []* receiver {
4157+ {
4158+ Name : "discord" ,
4159+ DiscordConfigs : []* discordConfig {
4160+ {
4161+ Username : "content" ,
4162+ WebhookURL : "http://example.com" ,
4163+ Message : "test message" ,
4164+ },
4165+ },
4166+ },
4167+ },
4168+ },
4169+ golden : "Discord_username_add_in_supported_versions_config.golden" ,
4170+ },
4171+ {
4172+ name : "Test AvatarURL field is dropped in discord config for unsupported versions" ,
4173+ againstVersion : semver.Version {Major : 0 , Minor : 27 },
4174+ in : & alertmanagerConfig {
4175+ Receivers : []* receiver {
4176+ {
4177+ Name : "discord" ,
4178+ DiscordConfigs : []* discordConfig {
4179+ {
4180+ AvatarURL : "content" ,
4181+ WebhookURL : "http://example.com" ,
4182+ Message : "test message" ,
4183+ },
4184+ },
4185+ },
4186+ },
4187+ },
4188+ golden : "Discord_avatarURL_dropped_in_unsupported_versions_config.golden" ,
4189+ },
4190+ {
4191+ name : "Test AvatarURL field add in discord config for supported versions" ,
4192+ againstVersion : semver.Version {Major : 0 , Minor : 28 },
4193+ in : & alertmanagerConfig {
4194+ Receivers : []* receiver {
4195+ {
4196+ Name : "discord" ,
4197+ DiscordConfigs : []* discordConfig {
4198+ {
4199+ AvatarURL : "content" ,
4200+ WebhookURL : "http://example.com" ,
4201+ Message : "test message" ,
4202+ },
4203+ },
4204+ },
4205+ },
4206+ },
4207+ golden : "Discord_avatarURL_add_in_supported_versions_config.golden" ,
4208+ },
4209+ {
4210+ name : "Test Content field is dropped in discord config for unsupported versions" ,
4211+ againstVersion : semver.Version {Major : 0 , Minor : 27 },
4212+ in : & alertmanagerConfig {
4213+ Receivers : []* receiver {
4214+ {
4215+ Name : "discord" ,
4216+ DiscordConfigs : []* discordConfig {
4217+ {
4218+ Content : "content" ,
4219+ WebhookURL : "http://example.com" ,
4220+ Message : "test message" ,
4221+ },
4222+ },
4223+ },
4224+ },
4225+ },
4226+ golden : "Discord_content_dropped_in_unsupported_versions_config.golden" ,
4227+ },
4228+ {
4229+ name : "Test Content field add in discord config for supported versions" ,
4230+ againstVersion : semver.Version {Major : 0 , Minor : 28 },
4231+ in : & alertmanagerConfig {
4232+ Receivers : []* receiver {
4233+ {
4234+ Name : "discord" ,
4235+ DiscordConfigs : []* discordConfig {
4236+ {
4237+ Content : "test content" ,
4238+ WebhookURL : "http://example.com" ,
4239+ Message : "test message" ,
4240+ },
4241+ },
4242+ },
4243+ },
4244+ },
4245+ golden : "Discord_content_add_in_supported_versions_config.golden" ,
4246+ },
4247+ } {
4248+ t .Run (tc .name , func (t * testing.T ) {
4249+ err := tc .in .sanitize (tc .againstVersion , logger )
4250+ require .NoError (t , err )
4251+
4252+ amConfigs , err := yaml .Marshal (tc .in )
4253+ require .NoError (t , err )
4254+
4255+ golden .Assert (t , string (amConfigs ), tc .golden )
4256+ })
4257+ }
4258+
4259+ }
4260+
41244261func TestSanitizeRocketChatConfig (t * testing.T ) {
41254262 logger := newNopLogger (t )
41264263 versionRocketChatAllowed := semver.Version {Major : 0 , Minor : 28 }
0 commit comments