@@ -4121,6 +4121,143 @@ func TestSanitizeJiraConfig(t *testing.T) {
4121
4121
}
4122
4122
}
4123
4123
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
+
4124
4261
func TestSanitizeRocketChatConfig (t * testing.T ) {
4125
4262
logger := newNopLogger (t )
4126
4263
versionRocketChatAllowed := semver.Version {Major : 0 , Minor : 28 }
0 commit comments