mirror of
https://github.com/grafana/grafana.git
synced 2024-11-30 20:54:22 -06:00
e06abb30aa
Ref #6552
63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package models
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
)
|
|
|
|
func TestAlertingModelTest(t *testing.T) {
|
|
Convey("Testing Alerting model", t, func() {
|
|
|
|
json1, _ := simplejson.NewJson([]byte(`{ "field": "value" }`))
|
|
json2, _ := simplejson.NewJson([]byte(`{ "field": "value" }`))
|
|
|
|
rule1 := &Alert{
|
|
Settings: json1,
|
|
Name: "Namn",
|
|
Message: "Message",
|
|
}
|
|
|
|
rule2 := &Alert{
|
|
Settings: json2,
|
|
Name: "Namn",
|
|
Message: "Message",
|
|
}
|
|
|
|
Convey("Testing AlertRule equals", func() {
|
|
|
|
So(rule1.ContainsUpdates(rule2), ShouldBeFalse)
|
|
})
|
|
|
|
Convey("Changing the expression should contain update", func() {
|
|
json2, _ := simplejson.NewJson([]byte(`{ "field": "newValue" }`))
|
|
rule1.Settings = json2
|
|
So(rule1.ContainsUpdates(rule2), ShouldBeTrue)
|
|
})
|
|
|
|
Convey("Should parse alertRule tags correctly", func() {
|
|
json2, _ := simplejson.NewJson([]byte(`{
|
|
"field": "value",
|
|
"alertRuleTags": {
|
|
"foo": "bar",
|
|
"waldo": "fred",
|
|
"tagMap": { "mapValue": "value" }
|
|
}
|
|
}`))
|
|
rule1.Settings = json2
|
|
expectedTags := []*Tag{
|
|
{Id: 0, Key: "foo", Value: "bar"},
|
|
{Id: 0, Key: "waldo", Value: "fred"},
|
|
{Id: 0, Key: "tagMap", Value: ""},
|
|
}
|
|
actualTags := rule1.GetTagsFromSettings()
|
|
|
|
So(len(actualTags), ShouldEqual, len(expectedTags))
|
|
for _, tag := range expectedTags {
|
|
So(ContainsTag(actualTags, tag), ShouldBeTrue)
|
|
}
|
|
})
|
|
})
|
|
}
|