summaryrefslogtreecommitdiffstats
path: root/modules/indexer/code/bleve_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/indexer/code/bleve_test.go')
-rw-r--r--modules/indexer/code/bleve_test.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/modules/indexer/code/bleve_test.go b/modules/indexer/code/bleve_test.go
index 2eafeef3c5..ac2b411998 100644
--- a/modules/indexer/code/bleve_test.go
+++ b/modules/indexer/code/bleve_test.go
@@ -5,12 +5,66 @@
package code
import (
+ "os"
"path/filepath"
"testing"
"code.gitea.io/gitea/models"
+ "code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/setting"
+
+ "github.com/stretchr/testify/assert"
)
func TestMain(m *testing.M) {
models.MainTest(m, filepath.Join("..", "..", ".."))
}
+
+func TestIndexAndSearch(t *testing.T) {
+ models.PrepareTestEnv(t)
+
+ dir := "./bleve.index"
+ os.RemoveAll(dir)
+
+ setting.Indexer.RepoIndexerEnabled = true
+ idx, _, err := NewBleveIndexer(dir)
+ if err != nil {
+ idx.Close()
+ log.Fatal("indexer.Init: %v", err)
+ }
+
+ err = idx.Index(1)
+ assert.NoError(t, err)
+
+ var (
+ keywords = []struct {
+ Keyword string
+ IDs []int64
+ }{
+ {
+ Keyword: "Description",
+ IDs: []int64{1},
+ },
+ {
+ Keyword: "repo1",
+ IDs: []int64{1},
+ },
+ {
+ Keyword: "non-exist",
+ IDs: []int64{},
+ },
+ }
+ )
+
+ for _, kw := range keywords {
+ total, res, err := idx.Search(nil, kw.Keyword, 1, 10)
+ assert.NoError(t, err)
+ assert.EqualValues(t, len(kw.IDs), total)
+
+ var ids = make([]int64, 0, len(res))
+ for _, hit := range res {
+ ids = append(ids, hit.RepoID)
+ }
+ assert.EqualValues(t, kw.IDs, ids)
+ }
+}