team_test.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package api
  2. import (
  3. "testing"
  4. "github.com/grafana/grafana/pkg/setting"
  5. "github.com/grafana/grafana/pkg/bus"
  6. "github.com/grafana/grafana/pkg/components/simplejson"
  7. "github.com/grafana/grafana/pkg/models"
  8. . "github.com/smartystreets/goconvey/convey"
  9. )
  10. func TestTeamApiEndpoint(t *testing.T) {
  11. Convey("Given two teams", t, func() {
  12. mockResult := models.SearchTeamQueryResult{
  13. Teams: []*models.TeamDTO{
  14. {Name: "team1"},
  15. {Name: "team2"},
  16. },
  17. TotalCount: 2,
  18. }
  19. hs := &HTTPServer{
  20. Cfg: setting.NewCfg(),
  21. }
  22. Convey("When searching with no parameters", func() {
  23. loggedInUserScenario("When calling GET on", "/api/teams/search", func(sc *scenarioContext) {
  24. var sentLimit int
  25. var sendPage int
  26. bus.AddHandler("test", func(query *models.SearchTeamsQuery) error {
  27. query.Result = mockResult
  28. sentLimit = query.Limit
  29. sendPage = query.Page
  30. return nil
  31. })
  32. sc.handlerFunc = hs.SearchTeams
  33. sc.fakeReqWithParams("GET", sc.url, map[string]string{}).exec()
  34. So(sentLimit, ShouldEqual, 1000)
  35. So(sendPage, ShouldEqual, 1)
  36. respJSON, err := simplejson.NewJson(sc.resp.Body.Bytes())
  37. So(err, ShouldBeNil)
  38. So(respJSON.Get("totalCount").MustInt(), ShouldEqual, 2)
  39. So(len(respJSON.Get("teams").MustArray()), ShouldEqual, 2)
  40. })
  41. })
  42. Convey("When searching with page and perpage parameters", func() {
  43. loggedInUserScenario("When calling GET on", "/api/teams/search", func(sc *scenarioContext) {
  44. var sentLimit int
  45. var sendPage int
  46. bus.AddHandler("test", func(query *models.SearchTeamsQuery) error {
  47. query.Result = mockResult
  48. sentLimit = query.Limit
  49. sendPage = query.Page
  50. return nil
  51. })
  52. sc.handlerFunc = hs.SearchTeams
  53. sc.fakeReqWithParams("GET", sc.url, map[string]string{"perpage": "10", "page": "2"}).exec()
  54. So(sentLimit, ShouldEqual, 10)
  55. So(sendPage, ShouldEqual, 2)
  56. })
  57. })
  58. })
  59. }