aboutsummaryrefslogtreecommitdiffstats
path: root/models/repo/topic_test.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-12-12 23:48:20 +0800
committerGitHub <noreply@github.com>2021-12-12 23:48:20 +0800
commit572324049008ac803d3d7c17a7b3a81ef00386fc (patch)
treea9c3709643a23165d27aa67e76f10f26a89936d5 /models/repo/topic_test.go
parent0a7e8327a017c5dd43e552bbcd0d0f056bc1671b (diff)
downloadgitea-572324049008ac803d3d7c17a7b3a81ef00386fc.tar.gz
gitea-572324049008ac803d3d7c17a7b3a81ef00386fc.zip
Some repository refactors (#17950)
* some repository refactors * remove unnecessary code * Fix test * Remove unnecessary banner
Diffstat (limited to 'models/repo/topic_test.go')
-rw-r--r--models/repo/topic_test.go80
1 files changed, 80 insertions, 0 deletions
diff --git a/models/repo/topic_test.go b/models/repo/topic_test.go
new file mode 100644
index 0000000000..353d96ef3e
--- /dev/null
+++ b/models/repo/topic_test.go
@@ -0,0 +1,80 @@
+// 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 repo
+
+import (
+ "testing"
+
+ "code.gitea.io/gitea/models/db"
+ "code.gitea.io/gitea/models/unittest"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestAddTopic(t *testing.T) {
+ totalNrOfTopics := 6
+ repo1NrOfTopics := 3
+
+ assert.NoError(t, unittest.PrepareTestDatabase())
+
+ topics, _, err := FindTopics(&FindTopicOptions{})
+ assert.NoError(t, err)
+ assert.Len(t, topics, totalNrOfTopics)
+
+ topics, total, err := FindTopics(&FindTopicOptions{
+ ListOptions: db.ListOptions{Page: 1, PageSize: 2},
+ })
+ assert.NoError(t, err)
+ assert.Len(t, topics, 2)
+ assert.EqualValues(t, 6, total)
+
+ topics, _, err = FindTopics(&FindTopicOptions{
+ RepoID: 1,
+ })
+ assert.NoError(t, err)
+ assert.Len(t, topics, repo1NrOfTopics)
+
+ assert.NoError(t, SaveTopics(2, "golang"))
+ repo2NrOfTopics := 1
+ topics, _, err = FindTopics(&FindTopicOptions{})
+ assert.NoError(t, err)
+ assert.Len(t, topics, totalNrOfTopics)
+
+ topics, _, err = FindTopics(&FindTopicOptions{
+ RepoID: 2,
+ })
+ assert.NoError(t, err)
+ assert.Len(t, topics, repo2NrOfTopics)
+
+ assert.NoError(t, SaveTopics(2, "golang", "gitea"))
+ repo2NrOfTopics = 2
+ totalNrOfTopics++
+ topic, err := GetTopicByName("gitea")
+ assert.NoError(t, err)
+ assert.EqualValues(t, 1, topic.RepoCount)
+
+ topics, _, err = FindTopics(&FindTopicOptions{})
+ assert.NoError(t, err)
+ assert.Len(t, topics, totalNrOfTopics)
+
+ topics, _, err = FindTopics(&FindTopicOptions{
+ RepoID: 2,
+ })
+ assert.NoError(t, err)
+ assert.Len(t, topics, repo2NrOfTopics)
+}
+
+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"))
+}