mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Rewrite models alert test to standard library (#30021)
This commit is contained in:
parent
18bc6810f9
commit
8e1196e3ed
@ -4,61 +4,59 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||||
. "github.com/smartystreets/goconvey/convey"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAlertingModelTest(t *testing.T) {
|
func TestAlert_ContainsUpdates(t *testing.T) {
|
||||||
Convey("Testing Alerting model", t, func() {
|
settings, err := simplejson.NewJson([]byte(`{ "field": "value" }`))
|
||||||
json1, err := simplejson.NewJson([]byte(`{ "field": "value" }`))
|
require.NoError(t, err)
|
||||||
So(err, ShouldBeNil)
|
|
||||||
json2, err := simplejson.NewJson([]byte(`{ "field": "value" }`))
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
|
|
||||||
rule1 := &Alert{
|
alert1 := &Alert{
|
||||||
Settings: json1,
|
Settings: settings,
|
||||||
Name: "Namn",
|
Name: "Name",
|
||||||
Message: "Message",
|
Message: "Message",
|
||||||
}
|
}
|
||||||
|
|
||||||
rule2 := &Alert{
|
alert2 := &Alert{
|
||||||
Settings: json2,
|
Settings: settings,
|
||||||
Name: "Namn",
|
Name: "Name",
|
||||||
Message: "Message",
|
Message: "Message",
|
||||||
}
|
}
|
||||||
|
|
||||||
Convey("Testing AlertRule equals", func() {
|
assert.False(t, alert1.ContainsUpdates(alert2))
|
||||||
So(rule1.ContainsUpdates(rule2), ShouldBeFalse)
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("Changing the expression should contain update", func() {
|
settingsUpdated, err := simplejson.NewJson([]byte(`{ "field": "newValue" }`))
|
||||||
json2, err := simplejson.NewJson([]byte(`{ "field": "newValue" }`))
|
require.NoError(t, err)
|
||||||
So(err, ShouldBeNil)
|
|
||||||
rule1.Settings = json2
|
|
||||||
So(rule1.ContainsUpdates(rule2), ShouldBeTrue)
|
|
||||||
})
|
|
||||||
|
|
||||||
Convey("Should parse alertRule tags correctly", func() {
|
alert2.Settings = settingsUpdated
|
||||||
json2, err := simplejson.NewJson([]byte(`{
|
|
||||||
"field": "value",
|
|
||||||
"alertRuleTags": {
|
|
||||||
"foo": "bar",
|
|
||||||
"waldo": "fred",
|
|
||||||
"tagMap": { "mapValue": "value" }
|
|
||||||
}
|
|
||||||
}`))
|
|
||||||
So(err, ShouldBeNil)
|
|
||||||
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))
|
assert.True(t, alert1.ContainsUpdates(alert2))
|
||||||
for _, tag := range expectedTags {
|
}
|
||||||
So(ContainsTag(actualTags, tag), ShouldBeTrue)
|
|
||||||
}
|
func TestAlert_GetTagsFromSettings(t *testing.T) {
|
||||||
})
|
settings, err := simplejson.NewJson([]byte(`{
|
||||||
})
|
"field": "value",
|
||||||
|
"alertRuleTags": {
|
||||||
|
"foo": "bar",
|
||||||
|
"waldo": "fred",
|
||||||
|
"tagMap": { "mapValue": "value" }
|
||||||
|
}
|
||||||
|
}`))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
alert := &Alert{
|
||||||
|
Settings: settings,
|
||||||
|
Name: "Name",
|
||||||
|
Message: "Message",
|
||||||
|
}
|
||||||
|
|
||||||
|
expectedTags := []*Tag{
|
||||||
|
{Id: 0, Key: "foo", Value: "bar"},
|
||||||
|
{Id: 0, Key: "waldo", Value: "fred"},
|
||||||
|
{Id: 0, Key: "tagMap", Value: ""},
|
||||||
|
}
|
||||||
|
actualTags := alert.GetTagsFromSettings()
|
||||||
|
|
||||||
|
assert.ElementsMatch(t, actualTags, expectedTags)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user