35 lines
808 B
Go
35 lines
808 B
Go
package metrics
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_NewAlertmanagerConfigMetrics(t *testing.T) {
|
|
t.Run("Successfully registers collectors despite previous call", func(t *testing.T) {
|
|
r := prometheus.NewRegistry()
|
|
l := log.NewNopLogger()
|
|
|
|
require.NotPanics(t, func() {
|
|
for i := 0; i < 3; i++ {
|
|
m := NewAlertmanagerConfigMetrics(r, l)
|
|
m.ConfigHash.WithLabelValues("test").Set(1)
|
|
m.Matchers.Set(1)
|
|
m.MatchRE.Set(1)
|
|
m.Match.Set(1)
|
|
m.ObjectMatchers.Set(1)
|
|
|
|
mf, err := r.Gather()
|
|
require.NoError(t, err)
|
|
|
|
for j := 0; j < len(mf); j++ {
|
|
require.Equal(t, float64(1), mf[j].GetMetric()[0].GetGauge().GetValue())
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|