diff --git a/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go b/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go index 91866fba2e9..c24a53a5910 100644 --- a/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go +++ b/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules.go @@ -191,20 +191,19 @@ type AlertRuleGroup struct { } func (a *AlertRuleGroup) ToModel() (models.AlertRuleGroup, error) { - rules := make([]models.AlertRule, 0, len(a.Rules)) + ruleGroup := models.AlertRuleGroup{ + Title: a.Title, + FolderUID: a.FolderUID, + Interval: a.Interval, + } for i := range a.Rules { converted, err := a.Rules[i].UpstreamModel() if err != nil { return models.AlertRuleGroup{}, err } - rules = append(rules, converted) + ruleGroup.Rules = append(ruleGroup.Rules, converted) } - return models.AlertRuleGroup{ - Title: a.Title, - FolderUID: a.FolderUID, - Interval: a.Interval, - Rules: rules, - }, nil + return ruleGroup, nil } func NewAlertRuleGroupFromModel(d models.AlertRuleGroup) AlertRuleGroup { diff --git a/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules_test.go b/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules_test.go new file mode 100644 index 00000000000..fd8845e41c4 --- /dev/null +++ b/pkg/services/ngalert/api/tooling/definitions/provisioning_alert_rules_test.go @@ -0,0 +1,35 @@ +package definitions + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestToModel(t *testing.T) { + t.Run("if no rules are provided the rule field should be nil", func(t *testing.T) { + ruleGroup := AlertRuleGroup{ + Title: "123", + FolderUID: "123", + Interval: 10, + } + tm, err := ruleGroup.ToModel() + 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 := AlertRuleGroup{ + Title: "123", + FolderUID: "123", + Interval: 10, + Rules: []ProvisionedAlertRule{ + { + UID: "1", + }, + }, + } + tm, err := ruleGroup.ToModel() + require.NoError(t, err) + require.Len(t, tm.Rules, 1) + }) +}