Select Git revision
metrics_middleware_test.go 1.11 KiB
package cache
import (
"reflect"
"testing"
"github.com/prometheus/client_golang/prometheus"
"github.com/stretchr/testify/require"
)
func TestMetricsMiddleware_argsToLabels(t *testing.T) {
testcases := []struct {
name string
input []string
want prometheus.Labels
}{
{
name: "input is empty",
input: []string{},
want: prometheus.Labels{},
},
{
name: "input is nil",
input: nil,
want: prometheus.Labels{},
},
{
name: "valid",
input: []string{"key", "value"},
want: prometheus.Labels{"key": "value"},
},
{
name: "multi valid",
input: []string{"key", "value", "key1", "value1"},
want: prometheus.Labels{"key": "value", "key1": "value1"},
},
{
name: "bad key",
input: []string{"value"},
want: prometheus.Labels{badKey: "value"},
},
{
name: "multi bad key",
input: []string{"key", "value", "value1"},
want: prometheus.Labels{"key": "value", badKey: "value1"},
},
}
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
got := argsToLabels(tc.input)
require.True(t, reflect.DeepEqual(tc.want, got))
})
}
}