2020-08-30 19:08:01 +03:00
// Copyright 2020 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2020-08-30 19:08:01 +03:00
package code
import (
2022-01-27 11:30:51 +03:00
"context"
2020-08-30 19:08:01 +03:00
"path/filepath"
"testing"
2021-11-12 17:36:47 +03:00
"code.gitea.io/gitea/models/unittest"
2022-01-20 02:26:57 +03:00
"code.gitea.io/gitea/modules/git"
2021-11-12 17:36:47 +03:00
2021-12-15 08:39:34 +03:00
_ "code.gitea.io/gitea/models"
2020-08-30 19:08:01 +03:00
"github.com/stretchr/testify/assert"
)
func TestMain ( m * testing . M ) {
2022-04-14 16:58:21 +03:00
unittest . MainTest ( m , & unittest . TestOptions {
GiteaRootPath : filepath . Join ( ".." , ".." , ".." ) ,
} )
2020-08-30 19:08:01 +03:00
}
func testIndexer ( name string , t * testing . T , indexer Indexer ) {
t . Run ( name , func ( t * testing . T ) {
var repoID int64 = 1
2022-01-20 02:26:57 +03:00
err := index ( git . DefaultContext , indexer , repoID )
2020-08-30 19:08:01 +03:00
assert . NoError ( t , err )
2022-01-20 20:46:10 +03:00
keywords := [ ] struct {
RepoIDs [ ] int64
Keyword string
IDs [ ] int64
Langs int
} {
{
RepoIDs : nil ,
Keyword : "Description" ,
IDs : [ ] int64 { repoID } ,
Langs : 1 ,
} ,
{
RepoIDs : [ ] int64 { 2 } ,
Keyword : "Description" ,
IDs : [ ] int64 { } ,
Langs : 0 ,
} ,
{
RepoIDs : nil ,
Keyword : "repo1" ,
IDs : [ ] int64 { repoID } ,
Langs : 1 ,
} ,
{
RepoIDs : [ ] int64 { 2 } ,
Keyword : "repo1" ,
IDs : [ ] int64 { } ,
Langs : 0 ,
} ,
{
RepoIDs : nil ,
Keyword : "non-exist" ,
IDs : [ ] int64 { } ,
Langs : 0 ,
} ,
}
2020-08-30 19:08:01 +03:00
for _ , kw := range keywords {
t . Run ( kw . Keyword , func ( t * testing . T ) {
2022-01-27 11:30:51 +03:00
total , res , langs , err := indexer . Search ( context . TODO ( ) , kw . RepoIDs , "" , kw . Keyword , 1 , 10 , false )
2020-08-30 19:08:01 +03:00
assert . NoError ( t , err )
assert . EqualValues ( t , len ( kw . IDs ) , total )
2021-06-07 08:27:09 +03:00
assert . Len ( t , langs , kw . Langs )
2020-08-30 19:08:01 +03:00
2022-01-20 20:46:10 +03:00
ids := make ( [ ] int64 , 0 , len ( res ) )
2020-08-30 19:08:01 +03:00
for _ , hit := range res {
ids = append ( ids , hit . RepoID )
assert . EqualValues ( t , "# repo1\n\nDescription for repo1" , hit . Content )
}
assert . EqualValues ( t , kw . IDs , ids )
} )
}
assert . NoError ( t , indexer . Delete ( repoID ) )
} )
}