preferences_test.go 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package sqlstore
  2. import (
  3. "testing"
  4. . "github.com/smartystreets/goconvey/convey"
  5. "github.com/grafana/grafana/pkg/models"
  6. "github.com/grafana/grafana/pkg/setting"
  7. )
  8. func TestPreferencesDataAccess(t *testing.T) {
  9. Convey("Testing preferences data access", t, func() {
  10. InitTestDB(t)
  11. Convey("GetPreferencesWithDefaults with no saved preferences should return defaults", func() {
  12. query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{}}
  13. err := GetPreferencesWithDefaults(query)
  14. So(err, ShouldBeNil)
  15. So(query.Result.Theme, ShouldEqual, setting.DefaultTheme)
  16. So(query.Result.Timezone, ShouldEqual, "browser")
  17. So(query.Result.HomeDashboardId, ShouldEqual, 0)
  18. })
  19. Convey("GetPreferencesWithDefaults with saved org and user home dashboard should return user home dashboard", func() {
  20. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
  21. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
  22. query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1, UserId: 1}}
  23. err := GetPreferencesWithDefaults(query)
  24. So(err, ShouldBeNil)
  25. So(query.Result.HomeDashboardId, ShouldEqual, 4)
  26. })
  27. Convey("GetPreferencesWithDefaults with saved org and other user home dashboard should return org home dashboard", func() {
  28. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
  29. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
  30. query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1, UserId: 2}}
  31. err := GetPreferencesWithDefaults(query)
  32. So(err, ShouldBeNil)
  33. So(query.Result.HomeDashboardId, ShouldEqual, 1)
  34. })
  35. Convey("GetPreferencesWithDefaults with saved org and teams home dashboard should return last team home dashboard", func() {
  36. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
  37. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
  38. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
  39. query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1, Teams: []int64{2, 3}}}
  40. err := GetPreferencesWithDefaults(query)
  41. So(err, ShouldBeNil)
  42. So(query.Result.HomeDashboardId, ShouldEqual, 3)
  43. })
  44. Convey("GetPreferencesWithDefaults with saved org and other teams home dashboard should return org home dashboard", func() {
  45. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
  46. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
  47. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
  48. query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1}}
  49. err := GetPreferencesWithDefaults(query)
  50. So(err, ShouldBeNil)
  51. So(query.Result.HomeDashboardId, ShouldEqual, 1)
  52. })
  53. Convey("GetPreferencesWithDefaults with saved org, teams and user home dashboard should return user home dashboard", func() {
  54. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
  55. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
  56. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
  57. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
  58. query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1, UserId: 1, Teams: []int64{2, 3}}}
  59. err := GetPreferencesWithDefaults(query)
  60. So(err, ShouldBeNil)
  61. So(query.Result.HomeDashboardId, ShouldEqual, 4)
  62. })
  63. Convey("GetPreferencesWithDefaults with saved org, other teams and user home dashboard should return org home dashboard", func() {
  64. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, HomeDashboardId: 1})
  65. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 2, HomeDashboardId: 2})
  66. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, TeamId: 3, HomeDashboardId: 3})
  67. SavePreferences(&models.SavePreferencesCommand{OrgId: 1, UserId: 1, HomeDashboardId: 4})
  68. query := &models.GetPreferencesWithDefaultsQuery{User: &models.SignedInUser{OrgId: 1, UserId: 2}}
  69. err := GetPreferencesWithDefaults(query)
  70. So(err, ShouldBeNil)
  71. So(query.Result.HomeDashboardId, ShouldEqual, 1)
  72. })
  73. })
  74. }