1package models 2 3import ( 4 "testing" 5 6 "github.com/grafana/grafana/pkg/components/simplejson" 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9) 10 11func TestAlert_ContainsUpdates(t *testing.T) { 12 settings, err := simplejson.NewJson([]byte(`{ "field": "value" }`)) 13 require.NoError(t, err) 14 15 alert1 := &Alert{ 16 Settings: settings, 17 Name: "Name", 18 Message: "Message", 19 } 20 21 alert2 := &Alert{ 22 Settings: settings, 23 Name: "Name", 24 Message: "Message", 25 } 26 27 assert.False(t, alert1.ContainsUpdates(alert2)) 28 29 settingsUpdated, err := simplejson.NewJson([]byte(`{ "field": "newValue" }`)) 30 require.NoError(t, err) 31 32 alert2.Settings = settingsUpdated 33 34 assert.True(t, alert1.ContainsUpdates(alert2)) 35} 36 37func TestAlert_GetTagsFromSettings(t *testing.T) { 38 settings, err := simplejson.NewJson([]byte(`{ 39 "field": "value", 40 "alertRuleTags": { 41 "foo": "bar", 42 "waldo": "fred", 43 "tagMap": { "mapValue": "value" } 44 } 45 }`)) 46 require.NoError(t, err) 47 48 alert := &Alert{ 49 Settings: settings, 50 Name: "Name", 51 Message: "Message", 52 } 53 54 expectedTags := []*Tag{ 55 {Id: 0, Key: "foo", Value: "bar"}, 56 {Id: 0, Key: "waldo", Value: "fred"}, 57 {Id: 0, Key: "tagMap", Value: ""}, 58 } 59 actualTags := alert.GetTagsFromSettings() 60 61 assert.ElementsMatch(t, actualTags, expectedTags) 62} 63