forked from grafana.jool/grafana-jool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.3 KiB
58 lines
1.3 KiB
package models
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestAdminConfiguration_AsSHA256(t *testing.T) {
|
|
tc := []struct {
|
|
name string
|
|
ac *AdminConfiguration
|
|
ciphertext string
|
|
}{
|
|
{
|
|
name: "AsSHA256",
|
|
ac: &AdminConfiguration{Alertmanagers: []string{"http://localhost:9093"}},
|
|
ciphertext: "3ec9db375a5ba12f7c7b704922cf4b8e21a31e30d85be2386803829f0ee24410",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tc {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
require.Equal(t, tt.ciphertext, tt.ac.AsSHA256())
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestAdminConfiguration_Validate(t *testing.T) {
|
|
tc := []struct {
|
|
name string
|
|
ac *AdminConfiguration
|
|
err error
|
|
}{
|
|
{
|
|
name: "should return the first error if any of the Alertmanagers URL is invalid",
|
|
ac: &AdminConfiguration{Alertmanagers: []string{"http://localhost:9093", "http://›∂-)Æÿ ñ"}},
|
|
err: fmt.Errorf("parse \"http://›∂-)Æÿ ñ\": invalid character \" \" in host name"),
|
|
},
|
|
{
|
|
name: "should not return any errors if all URLs are valid",
|
|
ac: &AdminConfiguration{Alertmanagers: []string{"http://localhost:9093"}},
|
|
},
|
|
}
|
|
|
|
for _, tt := range tc {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
err := tt.ac.Validate()
|
|
if tt.err != nil {
|
|
require.EqualError(t, err, tt.err.Error())
|
|
return
|
|
}
|
|
|
|
require.NoError(t, err)
|
|
})
|
|
}
|
|
}
|
|
|