Files
grafana/pkg/tsdb/cloudwatch/models/resources/metrics_resource_request_test.go
2022-11-22 15:59:11 +01:00

49 lines
1.2 KiB
Go

package resources
import (
"net/url"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestMetricsRequest(t *testing.T) {
t.Run("Should parse parameters", func(t *testing.T) {
request, err := GetMetricsRequest(map[string][]string{"region": {"us-east-1"}, "namespace": {"AWS/EC2"}})
require.NoError(t, err)
assert.Equal(t, "us-east-1", request.Region)
assert.Equal(t, "AWS/EC2", request.Namespace)
})
tests := []struct {
reqType MetricsRequestType
params url.Values
}{
{
params: map[string][]string{"region": {"us-east-1"}, "namespace": {"AWS/EC2"}},
reqType: MetricsByNamespaceRequestType,
},
{
params: map[string][]string{"region": {"us-east-1"}},
reqType: AllMetricsRequestType,
},
{
params: map[string][]string{"region": {"us-east-1"}, "namespace": {""}},
reqType: AllMetricsRequestType,
},
{
params: map[string][]string{"region": {"us-east-1"}, "namespace": {"custom-namespace"}},
reqType: CustomNamespaceRequestType,
},
}
for _, tc := range tests {
t.Run("Should resolve the correct type", func(t *testing.T) {
request, err := GetMetricsRequest(tc.params)
require.NoError(t, err)
assert.Equal(t, tc.reqType, request.Type())
})
}
}