浏览代码

dashboard history clean up: add tests

Alexander Zobnin 8 年之前
父节点
当前提交
59d89e422b
共有 1 个文件被更改,包括 42 次插入0 次删除
  1. 42 0
      pkg/services/sqlstore/dashboard_version_test.go

+ 42 - 0
pkg/services/sqlstore/dashboard_version_test.go

@@ -8,6 +8,7 @@ import (
 
 	"github.com/grafana/grafana/pkg/components/simplejson"
 	m "github.com/grafana/grafana/pkg/models"
+	"github.com/grafana/grafana/pkg/setting"
 )
 
 func updateTestDashboard(dashboard *m.Dashboard, data map[string]interface{}) {
@@ -101,3 +102,44 @@ func TestGetDashboardVersions(t *testing.T) {
 		})
 	})
 }
+
+func TestDeleteExpiredVersions(t *testing.T) {
+	Convey("Testing dashboard versions clean up", t, func() {
+		InitTestDB(t)
+		versionsToKeep := 5
+		versionsToWrite := 10
+		setting.DashboardVersionsToKeep = versionsToKeep
+
+		savedDash := insertTestDashboard("test dash 53", 1, "diff-all")
+		for i := 0; i < versionsToWrite-1; i++ {
+			updateTestDashboard(savedDash, map[string]interface{}{
+				"tags": "different-tag",
+			})
+		}
+
+		Convey("Clean up old dashboard versions", func() {
+			err := DeleteExpiredVersions(&m.DeleteExpiredVersionsCommand{})
+			So(err, ShouldBeNil)
+
+			query := m.GetDashboardVersionsQuery{DashboardId: savedDash.Id, OrgId: 1}
+			GetDashboardVersions(&query)
+
+			So(len(query.Result), ShouldEqual, versionsToKeep)
+			// Ensure latest versions were kept
+			So(query.Result[versionsToKeep-1].Version, ShouldEqual, versionsToWrite-versionsToKeep+1)
+			So(query.Result[0].Version, ShouldEqual, versionsToWrite)
+		})
+
+		Convey("Don't delete anything if there're no expired versions", func() {
+			setting.DashboardVersionsToKeep = versionsToWrite
+
+			err := DeleteExpiredVersions(&m.DeleteExpiredVersionsCommand{})
+			So(err, ShouldBeNil)
+
+			query := m.GetDashboardVersionsQuery{DashboardId: savedDash.Id, OrgId: 1}
+			GetDashboardVersions(&query)
+
+			So(len(query.Result), ShouldEqual, versionsToWrite)
+		})
+	})
+}