fix bug when set indexer as db and add tests (#6173)

This commit is contained in:
Lunny Xiao 2019-02-25 00:16:20 +08:00 committed by techknowlogick
parent 05143768d0
commit 15ecc08475
3 changed files with 30 additions and 3 deletions

View File

@ -11,7 +11,7 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestIndexAndSearch(t *testing.T) { func TestBleveIndexAndSearch(t *testing.T) {
dir := "./bleve.index" dir := "./bleve.index"
indexer := NewBleveIndexer(dir) indexer := NewBleveIndexer(dir)
defer os.RemoveAll(dir) defer os.RemoveAll(dir)

View File

@ -72,6 +72,7 @@ func InitIssueIndexer(syncReindex bool) error {
} }
if dummyQueue { if dummyQueue {
issueIndexerUpdateQueue = &DummyQueue{}
return nil return nil
} }

View File

@ -26,16 +26,42 @@ func TestMain(m *testing.M) {
models.MainTest(m, filepath.Join("..", "..", "..")) models.MainTest(m, filepath.Join("..", "..", ".."))
} }
func TestSearchIssues(t *testing.T) { func TestBleveSearchIssues(t *testing.T) {
assert.NoError(t, models.PrepareTestDatabase()) assert.NoError(t, models.PrepareTestDatabase())
os.RemoveAll(setting.Indexer.IssueIndexerQueueDir) os.RemoveAll(setting.Indexer.IssueIndexerQueueDir)
os.RemoveAll(setting.Indexer.IssuePath) os.RemoveAll(setting.Indexer.IssuePath)
setting.Indexer.IssueType = "bleve"
if err := InitIssueIndexer(true); err != nil { if err := InitIssueIndexer(true); err != nil {
fatalTestError("Error InitIssueIndexer: %v\n", err) fatalTestError("Error InitIssueIndexer: %v\n", err)
} }
time.Sleep(10 * time.Second) time.Sleep(5 * time.Second)
ids, err := SearchIssuesByKeyword(1, "issue2")
assert.NoError(t, err)
assert.EqualValues(t, []int64{2}, ids)
ids, err = SearchIssuesByKeyword(1, "first")
assert.NoError(t, err)
assert.EqualValues(t, []int64{1}, ids)
ids, err = SearchIssuesByKeyword(1, "for")
assert.NoError(t, err)
assert.EqualValues(t, []int64{1, 2, 3, 5}, ids)
ids, err = SearchIssuesByKeyword(1, "good")
assert.NoError(t, err)
assert.EqualValues(t, []int64{1}, ids)
}
func TestDBSearchIssues(t *testing.T) {
assert.NoError(t, models.PrepareTestDatabase())
setting.Indexer.IssueType = "db"
if err := InitIssueIndexer(true); err != nil {
fatalTestError("Error InitIssueIndexer: %v\n", err)
}
ids, err := SearchIssuesByKeyword(1, "issue2") ids, err := SearchIssuesByKeyword(1, "issue2")
assert.NoError(t, err) assert.NoError(t, err)