Cloudwatch: Ignore error while fetching regions (#76626)

This commit is contained in:
Sarah Zinger
2023-10-17 10:14:33 -04:00
committed by GitHub
parent 24a14f3cd7
commit fefdb78640
5 changed files with 29 additions and 8 deletions
+16 -5
View File
@@ -4,12 +4,15 @@ import (
"testing"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/tsdb/cloudwatch/mocks"
"github.com/grafana/grafana/pkg/tsdb/cloudwatch/models/resources"
"github.com/grafana/grafana/pkg/tsdb/cloudwatch/utils"
"github.com/stretchr/testify/assert"
)
var testLogger = log.New("test logger")
func TestRegions(t *testing.T) {
t.Run("returns regions from the api and merges them with default regions", func(t *testing.T) {
mockRegions := &ec2.DescribeRegionsOutput{
@@ -21,7 +24,7 @@ func TestRegions(t *testing.T) {
}
ec2Mock := &mocks.EC2Mock{}
ec2Mock.On("DescribeRegions").Return(mockRegions, nil)
regions, err := NewRegionsService(ec2Mock).GetRegions()
regions, err := NewRegionsService(ec2Mock, testLogger).GetRegions()
assert.NoError(t, err)
assert.Contains(t, regions, resources.ResourceResponse[resources.Region]{
Value: resources.Region{
@@ -35,10 +38,18 @@ func TestRegions(t *testing.T) {
})
})
t.Run("forwards error if DescribeRegions errors out", func(t *testing.T) {
t.Run("always returns default regions, even if fetch fails", func(t *testing.T) {
ec2Mock := &mocks.EC2Mock{}
ec2Mock.On("DescribeRegions").Return((*ec2.DescribeRegionsOutput)(nil), assert.AnError)
_, err := NewRegionsService(ec2Mock).GetRegions()
assert.Error(t, err)
mockRegions := &ec2.DescribeRegionsOutput{
Regions: []*ec2.Region{},
}
ec2Mock.On("DescribeRegions").Return(mockRegions, assert.AnError)
regions, err := NewRegionsService(ec2Mock, testLogger).GetRegions()
assert.NoError(t, err)
assert.Contains(t, regions, resources.ResourceResponse[resources.Region]{
Value: resources.Region{
Name: "us-east-2",
},
})
})
}