2018-04-11 05:51:44 +03:00
// Copyright 2018 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package models
import (
"testing"
2021-09-19 14:49:59 +03:00
"code.gitea.io/gitea/models/db"
2021-11-12 17:36:47 +03:00
"code.gitea.io/gitea/models/unittest"
2018-04-11 05:51:44 +03:00
"github.com/stretchr/testify/assert"
)
func TestAddTopic ( t * testing . T ) {
2019-09-03 18:46:24 +03:00
totalNrOfTopics := 6
repo1NrOfTopics := 3
repo2NrOfTopics := 2
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2018-04-11 05:51:44 +03:00
2021-08-12 15:43:08 +03:00
topics , _ , err := FindTopics ( & FindTopicOptions { } )
2018-04-11 05:51:44 +03:00
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , topics , totalNrOfTopics )
2018-04-11 05:51:44 +03:00
2021-08-12 15:43:08 +03:00
topics , total , err := FindTopics ( & FindTopicOptions {
2021-09-24 14:32:56 +03:00
ListOptions : db . ListOptions { Page : 1 , PageSize : 2 } ,
2018-04-11 05:51:44 +03:00
} )
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , topics , 2 )
2021-08-12 15:43:08 +03:00
assert . EqualValues ( t , 6 , total )
2018-04-11 05:51:44 +03:00
2021-08-12 15:43:08 +03:00
topics , _ , err = FindTopics ( & FindTopicOptions {
2018-04-11 05:51:44 +03:00
RepoID : 1 ,
} )
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , topics , repo1NrOfTopics )
2018-04-11 05:51:44 +03:00
assert . NoError ( t , SaveTopics ( 2 , "golang" ) )
2019-09-03 18:46:24 +03:00
repo2NrOfTopics = 1
2021-08-12 15:43:08 +03:00
topics , _ , err = FindTopics ( & FindTopicOptions { } )
2018-04-11 05:51:44 +03:00
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , topics , totalNrOfTopics )
2018-04-11 05:51:44 +03:00
2021-08-12 15:43:08 +03:00
topics , _ , err = FindTopics ( & FindTopicOptions {
2018-04-11 05:51:44 +03:00
RepoID : 2 ,
} )
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , topics , repo2NrOfTopics )
2018-04-11 05:51:44 +03:00
assert . NoError ( t , SaveTopics ( 2 , "golang" , "gitea" ) )
2019-09-03 18:46:24 +03:00
repo2NrOfTopics = 2
totalNrOfTopics ++
2018-04-11 05:51:44 +03:00
topic , err := GetTopicByName ( "gitea" )
assert . NoError ( t , err )
assert . EqualValues ( t , 1 , topic . RepoCount )
2021-08-12 15:43:08 +03:00
topics , _ , err = FindTopics ( & FindTopicOptions { } )
2018-04-11 05:51:44 +03:00
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , topics , totalNrOfTopics )
2018-04-11 05:51:44 +03:00
2021-08-12 15:43:08 +03:00
topics , _ , err = FindTopics ( & FindTopicOptions {
2018-04-11 05:51:44 +03:00
RepoID : 2 ,
} )
assert . NoError ( t , err )
2021-06-07 08:27:09 +03:00
assert . Len ( t , topics , repo2NrOfTopics )
2018-04-11 05:51:44 +03:00
}
2018-06-21 12:09:46 +03:00
func TestTopicValidator ( t * testing . T ) {
assert . True ( t , ValidateTopic ( "12345" ) )
assert . True ( t , ValidateTopic ( "2-test" ) )
assert . True ( t , ValidateTopic ( "test-3" ) )
assert . True ( t , ValidateTopic ( "first" ) )
assert . True ( t , ValidateTopic ( "second-test-topic" ) )
assert . True ( t , ValidateTopic ( "third-project-topic-with-max-length" ) )
assert . False ( t , ValidateTopic ( "$fourth-test,topic" ) )
assert . False ( t , ValidateTopic ( "-fifth-test-topic" ) )
assert . False ( t , ValidateTopic ( "sixth-go-project-topic-with-excess-length" ) )
}