user_test.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package sqlstore
  2. import (
  3. "fmt"
  4. "testing"
  5. . "github.com/smartystreets/goconvey/convey"
  6. "github.com/grafana/grafana/pkg/models"
  7. )
  8. func TestUserDataAccess(t *testing.T) {
  9. Convey("Testing DB", t, func() {
  10. InitTestDB(t)
  11. var err error
  12. for i := 0; i < 5; i++ {
  13. err = CreateUser(&models.CreateUserCommand{
  14. Email: fmt.Sprint("user", i, "@test.com"),
  15. Name: fmt.Sprint("user", i),
  16. Login: fmt.Sprint("loginuser", i),
  17. })
  18. So(err, ShouldBeNil)
  19. }
  20. Convey("Can return the first page of users and a total count", func() {
  21. query := models.SearchUsersQuery{Query: "", Page: 1, Limit: 3}
  22. err = SearchUsers(&query)
  23. So(err, ShouldBeNil)
  24. So(len(query.Result.Users), ShouldEqual, 3)
  25. So(query.Result.TotalCount, ShouldEqual, 5)
  26. })
  27. Convey("Can return the second page of users and a total count", func() {
  28. query := models.SearchUsersQuery{Query: "", Page: 2, Limit: 3}
  29. err = SearchUsers(&query)
  30. So(err, ShouldBeNil)
  31. So(len(query.Result.Users), ShouldEqual, 2)
  32. So(query.Result.TotalCount, ShouldEqual, 5)
  33. })
  34. Convey("Can return list of users matching query on user name", func() {
  35. query := models.SearchUsersQuery{Query: "use", Page: 1, Limit: 3}
  36. err = SearchUsers(&query)
  37. So(err, ShouldBeNil)
  38. So(len(query.Result.Users), ShouldEqual, 3)
  39. So(query.Result.TotalCount, ShouldEqual, 5)
  40. query = models.SearchUsersQuery{Query: "ser1", Page: 1, Limit: 3}
  41. err = SearchUsers(&query)
  42. So(err, ShouldBeNil)
  43. So(len(query.Result.Users), ShouldEqual, 1)
  44. So(query.Result.TotalCount, ShouldEqual, 1)
  45. query = models.SearchUsersQuery{Query: "USER1", Page: 1, Limit: 3}
  46. err = SearchUsers(&query)
  47. So(err, ShouldBeNil)
  48. So(len(query.Result.Users), ShouldEqual, 1)
  49. So(query.Result.TotalCount, ShouldEqual, 1)
  50. query = models.SearchUsersQuery{Query: "idontexist", Page: 1, Limit: 3}
  51. err = SearchUsers(&query)
  52. So(err, ShouldBeNil)
  53. So(len(query.Result.Users), ShouldEqual, 0)
  54. So(query.Result.TotalCount, ShouldEqual, 0)
  55. })
  56. Convey("Can return list of users matching query on email", func() {
  57. query := models.SearchUsersQuery{Query: "ser1@test.com", Page: 1, Limit: 3}
  58. err = SearchUsers(&query)
  59. So(err, ShouldBeNil)
  60. So(len(query.Result.Users), ShouldEqual, 1)
  61. So(query.Result.TotalCount, ShouldEqual, 1)
  62. })
  63. Convey("Can return list of users matching query on login name", func() {
  64. query := models.SearchUsersQuery{Query: "loginuser1", Page: 1, Limit: 3}
  65. err = SearchUsers(&query)
  66. So(err, ShouldBeNil)
  67. So(len(query.Result.Users), ShouldEqual, 1)
  68. So(query.Result.TotalCount, ShouldEqual, 1)
  69. })
  70. })
  71. }