5
5
package integrations
6
6
7
7
import (
8
+ "fmt"
8
9
"net/http"
9
10
"testing"
10
11
@@ -15,23 +16,53 @@ import (
15
16
"github.com/stretchr/testify/assert"
16
17
)
17
18
18
- func TestAPIReposGetTags (t * testing.T ) {
19
+ func TestAPIRepoTags (t * testing.T ) {
19
20
defer prepareTestEnv (t )()
20
21
user := models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
21
22
// Login as User2.
22
23
session := loginUser (t , user .Name )
23
24
token := getTokenForLoggedInUser (t , session )
24
25
25
- req := NewRequestf (t , "GET" , "/api/v1/repos/%s/repo1/tags?token=" + token , user .Name )
26
+ repoName := "repo1"
27
+
28
+ req := NewRequestf (t , "GET" , "/api/v1/repos/%s/%s/tags?token=%s" , user .Name , repoName , token )
26
29
resp := session .MakeRequest (t , req , http .StatusOK )
27
30
28
31
var tags []* api.Tag
29
32
DecodeJSON (t , resp , & tags )
30
33
31
34
assert .Len (t , tags , 1 )
32
35
assert .Equal (t , "v1.1" , tags [0 ].Name )
36
+ assert .Equal (t , "Initial commit" , tags [0 ].Message )
33
37
assert .Equal (t , "65f1bf27bc3bf70f64657658635e66094edbcb4d" , tags [0 ].Commit .SHA )
34
38
assert .Equal (t , setting .AppURL + "api/v1/repos/user2/repo1/git/commits/65f1bf27bc3bf70f64657658635e66094edbcb4d" , tags [0 ].Commit .URL )
35
39
assert .Equal (t , setting .AppURL + "user2/repo1/archive/v1.1.zip" , tags [0 ].ZipballURL )
36
40
assert .Equal (t , setting .AppURL + "user2/repo1/archive/v1.1.tar.gz" , tags [0 ].TarballURL )
41
+
42
+ newTag := createNewTagUsingAPI (t , session , token , user .Name , repoName , "awesome-tag" , "" , "nice!\n and some text" )
43
+ resp = session .MakeRequest (t , req , http .StatusOK )
44
+ DecodeJSON (t , resp , & tags )
45
+ assert .Len (t , tags , 2 )
46
+ for _ , tag := range tags {
47
+ if tag .Name != "v1.1" {
48
+ assert .EqualValues (t , newTag .Name , tag .Name )
49
+ assert .EqualValues (t , newTag .Message , tag .Message )
50
+ assert .EqualValues (t , "nice!\n and some text" , tag .Message )
51
+ assert .EqualValues (t , newTag .Commit .SHA , tag .Commit .SHA )
52
+ }
53
+ }
54
+ }
55
+
56
+ func createNewTagUsingAPI (t * testing.T , session * TestSession , token string , ownerName , repoName , name , target , msg string ) * api.Tag {
57
+ urlStr := fmt .Sprintf ("/api/v1/repos/%s/%s/tags?token=%s" , ownerName , repoName , token )
58
+ req := NewRequestWithJSON (t , "POST" , urlStr , & api.CreateTagOption {
59
+ TagName : name ,
60
+ Message : msg ,
61
+ Target : target ,
62
+ })
63
+ resp := session .MakeRequest (t , req , http .StatusCreated )
64
+
65
+ var respObj api.Tag
66
+ DecodeJSON (t , resp , & respObj )
67
+ return & respObj
37
68
}
0 commit comments