You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

indexer_test.go 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Copyright 2019 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package issues
  5. import (
  6. "fmt"
  7. "os"
  8. "path/filepath"
  9. "testing"
  10. "time"
  11. "code.gitea.io/gitea/models"
  12. "code.gitea.io/gitea/modules/setting"
  13. "github.com/stretchr/testify/assert"
  14. )
  15. func fatalTestError(fmtStr string, args ...interface{}) {
  16. fmt.Fprintf(os.Stderr, fmtStr, args...)
  17. os.Exit(1)
  18. }
  19. func TestMain(m *testing.M) {
  20. models.MainTest(m, filepath.Join("..", "..", ".."))
  21. }
  22. func TestBleveSearchIssues(t *testing.T) {
  23. assert.NoError(t, models.PrepareTestDatabase())
  24. os.RemoveAll(setting.Indexer.IssueQueueDir)
  25. os.RemoveAll(setting.Indexer.IssuePath)
  26. setting.Indexer.IssueType = "bleve"
  27. if err := InitIssueIndexer(true); err != nil {
  28. fatalTestError("Error InitIssueIndexer: %v\n", err)
  29. }
  30. time.Sleep(5 * time.Second)
  31. ids, err := SearchIssuesByKeyword(1, "issue2")
  32. assert.NoError(t, err)
  33. assert.EqualValues(t, []int64{2}, ids)
  34. ids, err = SearchIssuesByKeyword(1, "first")
  35. assert.NoError(t, err)
  36. assert.EqualValues(t, []int64{1}, ids)
  37. ids, err = SearchIssuesByKeyword(1, "for")
  38. assert.NoError(t, err)
  39. assert.EqualValues(t, []int64{1, 2, 3, 5}, ids)
  40. ids, err = SearchIssuesByKeyword(1, "good")
  41. assert.NoError(t, err)
  42. assert.EqualValues(t, []int64{1}, ids)
  43. }
  44. func TestDBSearchIssues(t *testing.T) {
  45. assert.NoError(t, models.PrepareTestDatabase())
  46. setting.Indexer.IssueType = "db"
  47. if err := InitIssueIndexer(true); err != nil {
  48. fatalTestError("Error InitIssueIndexer: %v\n", err)
  49. }
  50. ids, err := SearchIssuesByKeyword(1, "issue2")
  51. assert.NoError(t, err)
  52. assert.EqualValues(t, []int64{2}, ids)
  53. ids, err = SearchIssuesByKeyword(1, "first")
  54. assert.NoError(t, err)
  55. assert.EqualValues(t, []int64{1}, ids)
  56. ids, err = SearchIssuesByKeyword(1, "for")
  57. assert.NoError(t, err)
  58. assert.EqualValues(t, []int64{1, 2, 3, 5}, ids)
  59. ids, err = SearchIssuesByKeyword(1, "good")
  60. assert.NoError(t, err)
  61. assert.EqualValues(t, []int64{1}, ids)
  62. }