CloudWatch: Refactor tests, remove unused parameters (#48815)
This commit is contained in:
@@ -28,44 +28,46 @@ func loadGetMetricDataOutputsFromFile(filePath string) ([]*cloudwatch.GetMetricD
|
||||
func TestCloudWatchResponseParser(t *testing.T) {
|
||||
startTime := time.Now()
|
||||
endTime := startTime.Add(2 * time.Hour)
|
||||
t.Run("when aggregating response", func(t *testing.T) {
|
||||
getMetricDataOutputs, err := loadGetMetricDataOutputsFromFile("./test-data/multiple-outputs.json")
|
||||
t.Run("when aggregating multi-outputs response", func(t *testing.T) {
|
||||
getMetricDataOutputs, err := loadGetMetricDataOutputsFromFile("./test-data/multiple-outputs-query-a.json")
|
||||
require.NoError(t, err)
|
||||
aggregatedResponse := aggregateResponse(getMetricDataOutputs)
|
||||
t.Run("response for id a", func(t *testing.T) {
|
||||
idA := "a"
|
||||
t.Run("should have two labels", func(t *testing.T) {
|
||||
assert.Len(t, aggregatedResponse[idA].Labels, 2)
|
||||
assert.Len(t, aggregatedResponse[idA].Metrics, 2)
|
||||
})
|
||||
t.Run("should have points for label1 taken from both getMetricDataOutputs", func(t *testing.T) {
|
||||
assert.Len(t, aggregatedResponse[idA].Metrics["label1"].Values, 10)
|
||||
})
|
||||
t.Run("should have statuscode 'Complete'", func(t *testing.T) {
|
||||
assert.Equal(t, "Complete", aggregatedResponse[idA].StatusCode)
|
||||
})
|
||||
t.Run("should have exceeded request limit", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxMetricsExceeded"])
|
||||
})
|
||||
t.Run("should have exceeded query time range", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxQueryTimeRangeExceeded"])
|
||||
})
|
||||
t.Run("should have exceeded max query results", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxQueryResultsExceeded"])
|
||||
})
|
||||
t.Run("should have exceeded max matching results", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxMatchingResultsExceeded"])
|
||||
})
|
||||
idA := "a"
|
||||
t.Run("should have two labels", func(t *testing.T) {
|
||||
assert.Len(t, aggregatedResponse[idA].Labels, 2)
|
||||
assert.Len(t, aggregatedResponse[idA].Metrics, 2)
|
||||
})
|
||||
t.Run("response for id b", func(t *testing.T) {
|
||||
idB := "b"
|
||||
t.Run("should have statuscode is 'Partial'", func(t *testing.T) {
|
||||
assert.Equal(t, "Partial", aggregatedResponse[idB].StatusCode)
|
||||
})
|
||||
t.Run("should have an arithmetic error and an error message", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idB].HasArithmeticError)
|
||||
assert.Equal(t, "One or more data-points have been dropped due to non-numeric values (NaN, -Infinite, +Infinite)", aggregatedResponse[idB].ArithmeticErrorMessage)
|
||||
})
|
||||
t.Run("should have points for label1 taken from both getMetricDataOutputs", func(t *testing.T) {
|
||||
assert.Len(t, aggregatedResponse[idA].Metrics["label1"].Values, 10)
|
||||
})
|
||||
t.Run("should have statuscode 'Complete'", func(t *testing.T) {
|
||||
assert.Equal(t, "Complete", aggregatedResponse[idA].StatusCode)
|
||||
})
|
||||
t.Run("should have exceeded request limit", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxMetricsExceeded"])
|
||||
})
|
||||
t.Run("should have exceeded query time range", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxQueryTimeRangeExceeded"])
|
||||
})
|
||||
t.Run("should have exceeded max query results", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxQueryResultsExceeded"])
|
||||
})
|
||||
t.Run("should have exceeded max matching results", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idA].ErrorCodes["MaxMatchingResultsExceeded"])
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("when aggregating multi-outputs response with PartialData and ArithmeticError", func(t *testing.T) {
|
||||
getMetricDataOutputs, err := loadGetMetricDataOutputsFromFile("./test-data/multiple-outputs-query-b.json")
|
||||
require.NoError(t, err)
|
||||
aggregatedResponse := aggregateResponse(getMetricDataOutputs)
|
||||
idB := "b"
|
||||
t.Run("should have statuscode is 'PartialData'", func(t *testing.T) {
|
||||
assert.Equal(t, "PartialData", aggregatedResponse[idB].StatusCode)
|
||||
})
|
||||
t.Run("should have an arithmetic error and an error message", func(t *testing.T) {
|
||||
assert.True(t, aggregatedResponse[idB].HasArithmeticError)
|
||||
assert.Equal(t, "One or more data-points have been dropped due to non-numeric values (NaN, -Infinite, +Infinite)", aggregatedResponse[idB].ArithmeticErrorMessage)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user