| 1234567891011121314151617181920212223242526272829303132333435363738 |
- package sqlstore
- import (
- "testing"
- m "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
- . "github.com/smartystreets/goconvey/convey"
- )
- func TestSearchBuilder(t *testing.T) {
- dialect = migrator.NewDialect("sqlite3")
- Convey("Testing building a search", t, func() {
- signedInUser := &m.SignedInUser{
- OrgId: 1,
- UserId: 1,
- }
- sb := NewSearchBuilder(signedInUser, 1000, m.PERMISSION_VIEW)
- Convey("When building a normal search", func() {
- sql, params := sb.IsStarred().WithTitle("test").ToSql()
- So(sql, ShouldStartWith, "SELECT")
- So(sql, ShouldContainSubstring, "INNER JOIN dashboard on ids.id = dashboard.id")
- So(sql, ShouldEndWith, "ORDER BY dashboard.title ASC LIMIT 5000")
- So(len(params), ShouldBeGreaterThan, 0)
- })
- Convey("When building a search with tag filter", func() {
- sql, params := sb.WithTags([]string{"tag1", "tag2"}).ToSql()
- So(sql, ShouldStartWith, "SELECT")
- So(sql, ShouldContainSubstring, "LEFT OUTER JOIN dashboard_tag")
- So(sql, ShouldEndWith, "ORDER BY dashboard.title ASC LIMIT 5000")
- So(len(params), ShouldBeGreaterThan, 0)
- })
- })
- }
|