handlers_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package search
  2. import (
  3. "testing"
  4. "github.com/grafana/grafana/pkg/bus"
  5. m "github.com/grafana/grafana/pkg/models"
  6. . "github.com/smartystreets/goconvey/convey"
  7. )
  8. func TestSearch(t *testing.T) {
  9. Convey("Given search query", t, func() {
  10. query := Query{Limit: 2000, SignedInUser: &m.SignedInUser{IsGrafanaAdmin: true}}
  11. bus.AddHandler("test", func(query *FindPersistedDashboardsQuery) error {
  12. query.Result = HitList{
  13. &Hit{Id: 16, Title: "CCAA", Type: "dash-db", Tags: []string{"BB", "AA"}},
  14. &Hit{Id: 10, Title: "AABB", Type: "dash-db", Tags: []string{"CC", "AA"}},
  15. &Hit{Id: 15, Title: "BBAA", Type: "dash-db", Tags: []string{"EE", "AA", "BB"}},
  16. &Hit{Id: 25, Title: "bbAAa", Type: "dash-db", Tags: []string{"EE", "AA", "BB"}},
  17. &Hit{Id: 17, Title: "FOLDER", Type: "dash-folder"},
  18. }
  19. return nil
  20. })
  21. bus.AddHandler("test", func(query *m.GetUserStarsQuery) error {
  22. query.Result = map[int64]bool{10: true, 12: true}
  23. return nil
  24. })
  25. bus.AddHandler("test", func(query *m.GetSignedInUserQuery) error {
  26. query.Result = &m.SignedInUser{IsGrafanaAdmin: true}
  27. return nil
  28. })
  29. Convey("That is empty", func() {
  30. err := searchHandler(&query)
  31. So(err, ShouldBeNil)
  32. Convey("should return sorted results", func() {
  33. So(query.Result[0].Title, ShouldEqual, "FOLDER")
  34. So(query.Result[1].Title, ShouldEqual, "AABB")
  35. So(query.Result[2].Title, ShouldEqual, "BBAA")
  36. So(query.Result[3].Title, ShouldEqual, "bbAAa")
  37. So(query.Result[4].Title, ShouldEqual, "CCAA")
  38. })
  39. Convey("should return sorted tags", func() {
  40. So(query.Result[3].Tags[0], ShouldEqual, "AA")
  41. So(query.Result[3].Tags[1], ShouldEqual, "BB")
  42. So(query.Result[3].Tags[2], ShouldEqual, "EE")
  43. })
  44. })
  45. })
  46. }