dashboard_version_test.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package sqlstore
  2. import (
  3. "reflect"
  4. "testing"
  5. . "github.com/smartystreets/goconvey/convey"
  6. "github.com/grafana/grafana/pkg/components/simplejson"
  7. m "github.com/grafana/grafana/pkg/models"
  8. )
  9. func updateTestDashboard(dashboard *m.Dashboard, data map[string]interface{}) {
  10. data["title"] = dashboard.Title
  11. saveCmd := m.SaveDashboardCommand{
  12. OrgId: dashboard.OrgId,
  13. Overwrite: true,
  14. Dashboard: simplejson.NewFromAny(data),
  15. }
  16. err := SaveDashboard(&saveCmd)
  17. So(err, ShouldBeNil)
  18. }
  19. func TestGetDashboardVersion(t *testing.T) {
  20. Convey("Testing dashboard version retrieval", t, func() {
  21. InitTestDB(t)
  22. Convey("Get a Dashboard ID and version ID", func() {
  23. savedDash := insertTestDashboard("test dash 26", 1, "diff")
  24. query := m.GetDashboardVersionQuery{
  25. DashboardId: savedDash.Id,
  26. Version: savedDash.Version,
  27. OrgId: 1,
  28. }
  29. err := GetDashboardVersion(&query)
  30. So(err, ShouldBeNil)
  31. So(savedDash.Id, ShouldEqual, query.DashboardId)
  32. So(savedDash.Version, ShouldEqual, query.Version)
  33. dashCmd := m.GetDashboardQuery{
  34. OrgId: savedDash.OrgId,
  35. Slug: savedDash.Slug,
  36. }
  37. err = GetDashboard(&dashCmd)
  38. So(err, ShouldBeNil)
  39. eq := reflect.DeepEqual(dashCmd.Result.Data, query.Result.Data)
  40. So(eq, ShouldEqual, true)
  41. })
  42. Convey("Attempt to get a version that doesn't exist", func() {
  43. query := m.GetDashboardVersionQuery{
  44. DashboardId: int64(999),
  45. Version: 123,
  46. OrgId: 1,
  47. }
  48. err := GetDashboardVersion(&query)
  49. So(err, ShouldNotBeNil)
  50. So(err, ShouldEqual, m.ErrDashboardVersionNotFound)
  51. })
  52. })
  53. }
  54. func TestGetDashboardVersions(t *testing.T) {
  55. Convey("Testing dashboard versions retrieval", t, func() {
  56. InitTestDB(t)
  57. savedDash := insertTestDashboard("test dash 43", 1, "diff-all")
  58. Convey("Get all versions for a given Dashboard ID", func() {
  59. query := m.GetDashboardVersionsQuery{DashboardId: savedDash.Id, OrgId: 1}
  60. err := GetDashboardVersions(&query)
  61. So(err, ShouldBeNil)
  62. So(len(query.Result), ShouldEqual, 1)
  63. })
  64. Convey("Attempt to get the versions for a non-existent Dashboard ID", func() {
  65. query := m.GetDashboardVersionsQuery{DashboardId: int64(999), OrgId: 1}
  66. err := GetDashboardVersions(&query)
  67. So(err, ShouldNotBeNil)
  68. So(err, ShouldEqual, m.ErrNoVersionsForDashboardId)
  69. So(len(query.Result), ShouldEqual, 0)
  70. })
  71. Convey("Get all versions for an updated dashboard", func() {
  72. updateTestDashboard(savedDash, map[string]interface{}{
  73. "tags": "different-tag",
  74. })
  75. query := m.GetDashboardVersionsQuery{DashboardId: savedDash.Id, OrgId: 1}
  76. err := GetDashboardVersions(&query)
  77. So(err, ShouldBeNil)
  78. So(len(query.Result), ShouldEqual, 2)
  79. })
  80. })
  81. }