From 262821e7e76d4b57f88a43cecd1dc4e76be64d45 Mon Sep 17 00:00:00 2001 From: bergquist Date: Wed, 20 Apr 2016 16:46:24 +0200 Subject: [PATCH] feat(alerting): tests that alertes can be read from db --- pkg/services/sqlstore/alerting.go | 15 ++++++- pkg/services/sqlstore/alerting_test.go | 62 ++++++++++++++++---------- 2 files changed, 53 insertions(+), 24 deletions(-) diff --git a/pkg/services/sqlstore/alerting.go b/pkg/services/sqlstore/alerting.go index 4f30d6ede46..dfbcbae2c1b 100644 --- a/pkg/services/sqlstore/alerting.go +++ b/pkg/services/sqlstore/alerting.go @@ -2,7 +2,6 @@ package sqlstore import ( "fmt" - "github.com/grafana/grafana/pkg/bus" m "github.com/grafana/grafana/pkg/models" ) @@ -23,3 +22,17 @@ func SaveAlerts(cmd *m.SaveAlertsCommand) error { return nil } + +func GetAlertsByDashboard(dashboardId, panelId int64) (m.Alert, error) { + // this code should be refactored!! + // uniqueness should be garanted! + + alerts := make([]m.Alert, 0) + err := x.Where("dashboard_id = ? and panel_id = ?", dashboardId, panelId).Find(&alerts) + + if err != nil { + return m.Alert{}, err + } + + return alerts[0], nil +} diff --git a/pkg/services/sqlstore/alerting_test.go b/pkg/services/sqlstore/alerting_test.go index bfd22b46b4c..296fcb810c0 100644 --- a/pkg/services/sqlstore/alerting_test.go +++ b/pkg/services/sqlstore/alerting_test.go @@ -12,32 +12,48 @@ func TestAlertingDataAccess(t *testing.T) { Convey("Testing Alerting data access", t, func() { InitTestDB(t) - Convey("Can create alert", func() { - items := []m.Alert{ - { - PanelId: 1, - DashboardId: 1, - Query: "Query", - QueryRefId: "A", - WarnLevel: "> 30", - CritLevel: "> 50", - Interval: 10, - Title: "Alerting title", - Description: "Alerting description", - QueryRange: "5m", - Aggregator: "avg", - }, - } - - cmd := m.SaveAlertsCommand{ - Alerts: &items, + items := []m.Alert{ + { + PanelId: 1, DashboardId: 1, - OrgId: 1, - UserId: 1, - } + Query: "Query", + QueryRefId: "A", + WarnLevel: "> 30", + CritLevel: "> 50", + Interval: 10, + Title: "Alerting title", + Description: "Alerting description", + QueryRange: "5m", + Aggregator: "avg", + }, + } - err := SaveAlerts(&cmd) + cmd := m.SaveAlertsCommand{ + Alerts: &items, + DashboardId: 1, + OrgId: 1, + UserId: 1, + } + + err := SaveAlerts(&cmd) + + Convey("Can create alert", func() { So(err, ShouldBeNil) }) + + Convey("can read properties", func() { + alert, err2 := GetAlertsByDashboard(1, 1) + + So(err2, ShouldBeNil) + So(alert.Interval, ShouldEqual, 10) + So(alert.WarnLevel, ShouldEqual, "> 30") + So(alert.CritLevel, ShouldEqual, "> 50") + So(alert.Query, ShouldEqual, "Query") + So(alert.QueryRefId, ShouldEqual, "A") + So(alert.Title, ShouldEqual, "Alerting title") + So(alert.Description, ShouldEqual, "Alerting description") + So(alert.QueryRange, ShouldEqual, "5m") + So(alert.Aggregator, ShouldEqual, "avg") + }) }) }