瀏覽代碼

test(alerting): make sure the worst state is captured

bergquist 9 年之前
父節點
當前提交
04436c8a52
共有 1 個文件被更改,包括 17 次插入1 次删除
  1. 17 1
      pkg/services/alerting/executor_test.go

+ 17 - 1
pkg/services/alerting/executor_test.go

@@ -91,7 +91,7 @@ func TestAlertingExecutor(t *testing.T) {
 				}
 
 				timeSeries := []*tsdb.TimeSeries{
-					tsdb.NewTimeSeries("test1", [][2]float64{{1, 0}, {11, 0}}),
+					tsdb.NewTimeSeries("test1", [][2]float64{{6, 0}, {11, 0}}),
 				}
 
 				result := executor.evaluateRule(rule, timeSeries)
@@ -130,6 +130,22 @@ func TestAlertingExecutor(t *testing.T) {
 				result := executor.evaluateRule(rule, timeSeries)
 				So(result.State, ShouldEqual, alertstates.Critical)
 			})
+
+			Convey("first serie is warn, second is critical", func() {
+				rule := &AlertRule{
+					Critical:    Level{Level: 10, Operator: ">"},
+					Warning:     Level{Level: 5, Operator: ">"},
+					Transformer: transformers.NewAggregationTransformer("avg"),
+				}
+
+				timeSeries := []*tsdb.TimeSeries{
+					tsdb.NewTimeSeries("test1", [][2]float64{{6, 0}}),
+					tsdb.NewTimeSeries("test1", [][2]float64{{11, 0}}),
+				}
+
+				result := executor.evaluateRule(rule, timeSeries)
+				So(result.State, ShouldEqual, alertstates.Critical)
+			})
 		})
 	})
 }