55package integrations
66
77import (
8+ "fmt"
89 "net/http"
910 "testing"
1011
@@ -15,23 +16,53 @@ import (
1516 "github.com/stretchr/testify/assert"
1617)
1718
18- func TestAPIReposGetTags (t * testing.T ) {
19+ func TestAPIRepoTags (t * testing.T ) {
1920 defer prepareTestEnv (t )()
2021 user := models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
2122 // Login as User2.
2223 session := loginUser (t , user .Name )
2324 token := getTokenForLoggedInUser (t , session )
2425
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 )
2629 resp := session .MakeRequest (t , req , http .StatusOK )
2730
2831 var tags []* api.Tag
2932 DecodeJSON (t , resp , & tags )
3033
3134 assert .Len (t , tags , 1 )
3235 assert .Equal (t , "v1.1" , tags [0 ].Name )
36+ assert .Equal (t , "Initial commit" , tags [0 ].Message )
3337 assert .Equal (t , "65f1bf27bc3bf70f64657658635e66094edbcb4d" , tags [0 ].Commit .SHA )
3438 assert .Equal (t , setting .AppURL + "api/v1/repos/user2/repo1/git/commits/65f1bf27bc3bf70f64657658635e66094edbcb4d" , tags [0 ].Commit .URL )
3539 assert .Equal (t , setting .AppURL + "user2/repo1/archive/v1.1.zip" , tags [0 ].ZipballURL )
3640 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
3768}
0 commit comments