Skip to content

Commit eca6cca

Browse files
committed
add min length validations on new discord fields
1 parent ef12106 commit eca6cca

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed

Diff for: pkg/alertmanager/amcfg_test.go

+137
Original file line numberDiff line numberDiff line change
@@ -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+
41244261
func TestSanitizeRocketChatConfig(t *testing.T) {
41254262
logger := newNopLogger(t)
41264263
versionRocketChatAllowed := semver.Version{Major: 0, Minor: 28}

0 commit comments

Comments
 (0)