Alerting: Start splitting apart ngalert/api package. (#102075)
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/models"
|
||||
)
|
||||
|
||||
func TestToModel(t *testing.T) {
|
||||
t.Run("if no rules are provided the rule field should be nil", func(t *testing.T) {
|
||||
ruleGroup := definitions.AlertRuleGroup{
|
||||
Title: "123",
|
||||
FolderUID: "123",
|
||||
Interval: 10,
|
||||
}
|
||||
tm, err := AlertRuleGroupFromApiAlertRuleGroup(ruleGroup)
|
||||
require.NoError(t, err)
|
||||
require.Nil(t, tm.Rules)
|
||||
})
|
||||
t.Run("if rules are provided the rule field should be not nil", func(t *testing.T) {
|
||||
ruleGroup := definitions.AlertRuleGroup{
|
||||
Title: "123",
|
||||
FolderUID: "123",
|
||||
Interval: 10,
|
||||
Rules: []definitions.ProvisionedAlertRule{
|
||||
{
|
||||
UID: "1",
|
||||
},
|
||||
},
|
||||
}
|
||||
tm, err := AlertRuleGroupFromApiAlertRuleGroup(ruleGroup)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, tm.Rules, 1)
|
||||
})
|
||||
t.Run("should clear recording rule ignored fields correctly", func(t *testing.T) {
|
||||
ruleGroup := definitions.AlertRuleGroup{
|
||||
Title: "123",
|
||||
FolderUID: "123",
|
||||
Interval: 10,
|
||||
Rules: []definitions.ProvisionedAlertRule{
|
||||
{
|
||||
UID: "1",
|
||||
Condition: "A",
|
||||
ExecErrState: definitions.ErrorErrState,
|
||||
NoDataState: definitions.NoData,
|
||||
For: 10,
|
||||
NotificationSettings: &definitions.AlertRuleNotificationSettings{
|
||||
Receiver: "receiver",
|
||||
},
|
||||
Record: &definitions.Record{
|
||||
Metric: "metric",
|
||||
From: "A",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
tm, err := AlertRuleGroupFromApiAlertRuleGroup(ruleGroup)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, tm.Rules, 1)
|
||||
rule := tm.Rules[0]
|
||||
require.Empty(t, rule.NoDataState)
|
||||
require.Empty(t, rule.For)
|
||||
require.Empty(t, rule.Condition)
|
||||
require.Empty(t, rule.ExecErrState)
|
||||
require.Nil(t, rule.NotificationSettings)
|
||||
})
|
||||
}
|
||||
|
||||
func TestAlertRuleMetadataFromModelMetadata(t *testing.T) {
|
||||
t.Run("should convert model metadata to api metadata", func(t *testing.T) {
|
||||
modelMetadata := models.AlertRuleMetadata{
|
||||
EditorSettings: models.EditorSettings{
|
||||
SimplifiedQueryAndExpressionsSection: true,
|
||||
SimplifiedNotificationsSection: true,
|
||||
},
|
||||
}
|
||||
|
||||
apiMetadata := AlertRuleMetadataFromModelMetadata(modelMetadata)
|
||||
|
||||
require.True(t, apiMetadata.EditorSettings.SimplifiedQueryAndExpressionsSection)
|
||||
require.True(t, apiMetadata.EditorSettings.SimplifiedNotificationsSection)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user