2017-06-25 17:51:07 +03:00
// Copyright 2017 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 integrations
import (
2018-09-13 05:33:48 +03:00
"fmt"
2017-06-25 17:51:07 +03:00
"net/http"
"testing"
"code.gitea.io/gitea/models"
2019-05-11 13:21:34 +03:00
api "code.gitea.io/gitea/modules/structs"
2017-06-25 17:51:07 +03:00
"github.com/stretchr/testify/assert"
)
func TestAPIListIssues ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2017-06-25 17:51:07 +03:00
repo := models . AssertExistsAndLoadBean ( t , & models . Repository { ID : 1 } ) . ( * models . Repository )
owner := models . AssertExistsAndLoadBean ( t , & models . User { ID : repo . OwnerID } ) . ( * models . User )
session := loginUser ( t , owner . Name )
2018-09-10 19:15:52 +03:00
token := getTokenForLoggedInUser ( t , session )
req := NewRequestf ( t , "GET" , "/api/v1/repos/%s/%s/issues?state=all&token=%s" ,
owner . Name , repo . Name , token )
2017-07-07 22:36:47 +03:00
resp := session . MakeRequest ( t , req , http . StatusOK )
2017-06-25 17:51:07 +03:00
var apiIssues [ ] * api . Issue
DecodeJSON ( t , resp , & apiIssues )
assert . Len ( t , apiIssues , models . GetCount ( t , & models . Issue { RepoID : repo . ID } ) )
for _ , apiIssue := range apiIssues {
models . AssertExistsAndLoadBean ( t , & models . Issue { ID : apiIssue . ID , RepoID : repo . ID } )
}
}
func TestAPICreateIssue ( t * testing . T ) {
2019-11-26 02:21:37 +03:00
defer prepareTestEnv ( t ) ( )
2017-06-25 17:51:07 +03:00
const body , title = "apiTestBody" , "apiTestTitle"
repo := models . AssertExistsAndLoadBean ( t , & models . Repository { ID : 1 } ) . ( * models . Repository )
owner := models . AssertExistsAndLoadBean ( t , & models . User { ID : repo . OwnerID } ) . ( * models . User )
session := loginUser ( t , owner . Name )
2018-09-10 19:15:52 +03:00
token := getTokenForLoggedInUser ( t , session )
urlStr := fmt . Sprintf ( "/api/v1/repos/%s/%s/issues?state=all&token=%s" , owner . Name , repo . Name , token )
2017-06-25 17:51:07 +03:00
req := NewRequestWithJSON ( t , "POST" , urlStr , & api . CreateIssueOption {
Body : body ,
Title : title ,
Assignee : owner . Name ,
} )
2017-07-07 22:36:47 +03:00
resp := session . MakeRequest ( t , req , http . StatusCreated )
2017-06-25 17:51:07 +03:00
var apiIssue api . Issue
DecodeJSON ( t , resp , & apiIssue )
assert . Equal ( t , apiIssue . Body , body )
assert . Equal ( t , apiIssue . Title , title )
models . AssertExistsAndLoadBean ( t , & models . Issue {
RepoID : repo . ID ,
AssigneeID : owner . ID ,
Content : body ,
Title : title ,
} )
}