code.gitea.io/gitea@v1.19.3/modules/indexer/code/indexer_test.go (about) 1 // Copyright 2020 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package code 5 6 import ( 7 "context" 8 "path/filepath" 9 "testing" 10 11 "code.gitea.io/gitea/models/unittest" 12 "code.gitea.io/gitea/modules/git" 13 14 _ "code.gitea.io/gitea/models" 15 16 "github.com/stretchr/testify/assert" 17 ) 18 19 func TestMain(m *testing.M) { 20 unittest.MainTest(m, &unittest.TestOptions{ 21 GiteaRootPath: filepath.Join("..", "..", ".."), 22 }) 23 } 24 25 func testIndexer(name string, t *testing.T, indexer Indexer) { 26 t.Run(name, func(t *testing.T) { 27 var repoID int64 = 1 28 err := index(git.DefaultContext, indexer, repoID) 29 assert.NoError(t, err) 30 keywords := []struct { 31 RepoIDs []int64 32 Keyword string 33 IDs []int64 34 Langs int 35 }{ 36 { 37 RepoIDs: nil, 38 Keyword: "Description", 39 IDs: []int64{repoID}, 40 Langs: 1, 41 }, 42 { 43 RepoIDs: []int64{2}, 44 Keyword: "Description", 45 IDs: []int64{}, 46 Langs: 0, 47 }, 48 { 49 RepoIDs: nil, 50 Keyword: "repo1", 51 IDs: []int64{repoID}, 52 Langs: 1, 53 }, 54 { 55 RepoIDs: []int64{2}, 56 Keyword: "repo1", 57 IDs: []int64{}, 58 Langs: 0, 59 }, 60 { 61 RepoIDs: nil, 62 Keyword: "non-exist", 63 IDs: []int64{}, 64 Langs: 0, 65 }, 66 } 67 68 for _, kw := range keywords { 69 t.Run(kw.Keyword, func(t *testing.T) { 70 total, res, langs, err := indexer.Search(context.TODO(), kw.RepoIDs, "", kw.Keyword, 1, 10, false) 71 assert.NoError(t, err) 72 assert.EqualValues(t, len(kw.IDs), total) 73 assert.Len(t, langs, kw.Langs) 74 75 ids := make([]int64, 0, len(res)) 76 for _, hit := range res { 77 ids = append(ids, hit.RepoID) 78 assert.EqualValues(t, "# repo1\n\nDescription for repo1", hit.Content) 79 } 80 assert.EqualValues(t, kw.IDs, ids) 81 }) 82 } 83 84 assert.NoError(t, indexer.Delete(repoID)) 85 }) 86 }