@ -74,8 +74,79 @@ func TestAPICreatePullSuccess(t *testing.T) {
Base : "master" ,
Title : "create a failure pr" ,
} )
session . MakeRequest ( t , req , 201 )
session . MakeRequest ( t , req , http . StatusUnprocessableEntity ) // second request should fail
}
func TestAPICreatePullWithFieldsSuccess ( t * testing . T ) {
defer prepareTestEnv ( t ) ( )
// repo10 have code, pulls units.
repo10 := models . AssertExistsAndLoadBean ( t , & models . Repository { ID : 10 } ) . ( * models . Repository )
owner10 := models . AssertExistsAndLoadBean ( t , & models . User { ID : repo10 . OwnerID } ) . ( * models . User )
// repo11 only have code unit but should still create pulls
repo11 := models . AssertExistsAndLoadBean ( t , & models . Repository { ID : 11 } ) . ( * models . Repository )
owner11 := models . AssertExistsAndLoadBean ( t , & models . User { ID : repo11 . OwnerID } ) . ( * models . User )
session := loginUser ( t , owner11 . Name )
token := getTokenForLoggedInUser ( t , session )
opts := & api . CreatePullRequestOption {
Head : fmt . Sprintf ( "%s:master" , owner11 . Name ) ,
Base : "master" ,
Title : "create a failure pr" ,
Body : "foobaaar" ,
Milestone : 5 ,
Assignees : [ ] string { owner10 . Name } ,
Labels : [ ] int64 { 5 } ,
}
req := NewRequestWithJSON ( t , http . MethodPost , fmt . Sprintf ( "/api/v1/repos/%s/%s/pulls?token=%s" , owner10 . Name , repo10 . Name , token ) , opts )
res := session . MakeRequest ( t , req , 201 )
pull := new ( api . PullRequest )
DecodeJSON ( t , res , pull )
assert . NotNil ( t , pull . Milestone )
assert . EqualValues ( t , opts . Milestone , pull . Milestone . ID )
if assert . Len ( t , pull . Assignees , 1 ) {
assert . EqualValues ( t , opts . Assignees [ 0 ] , owner10 . Name )
}
assert . NotNil ( t , pull . Labels )
assert . EqualValues ( t , opts . Labels [ 0 ] , pull . Labels [ 0 ] . ID )
}
func TestAPICreatePullWithFieldsFailure ( t * testing . T ) {
defer prepareTestEnv ( t ) ( )
// repo10 have code, pulls units.
repo10 := models . AssertExistsAndLoadBean ( t , & models . Repository { ID : 10 } ) . ( * models . Repository )
owner10 := models . AssertExistsAndLoadBean ( t , & models . User { ID : repo10 . OwnerID } ) . ( * models . User )
// repo11 only have code unit but should still create pulls
repo11 := models . AssertExistsAndLoadBean ( t , & models . Repository { ID : 11 } ) . ( * models . Repository )
owner11 := models . AssertExistsAndLoadBean ( t , & models . User { ID : repo11 . OwnerID } ) . ( * models . User )
session := loginUser ( t , owner11 . Name )
token := getTokenForLoggedInUser ( t , session )
opts := & api . CreatePullRequestOption {
Head : fmt . Sprintf ( "%s:master" , owner11 . Name ) ,
Base : "master" ,
}
req := NewRequestWithJSON ( t , http . MethodPost , fmt . Sprintf ( "/api/v1/repos/%s/%s/pulls?token=%s" , owner10 . Name , repo10 . Name , token ) , opts )
session . MakeRequest ( t , req , http . StatusUnprocessableEntity )
opts . Title = "is required"
opts . Milestone = 666
session . MakeRequest ( t , req , http . StatusUnprocessableEntity )
opts . Milestone = 5
opts . Assignees = [ ] string { "qweruqweroiuyqweoiruywqer" }
session . MakeRequest ( t , req , http . StatusUnprocessableEntity )
opts . Assignees = [ ] string { owner10 . LoginName }
opts . Labels = [ ] int64 { 55555 }
session . MakeRequest ( t , req , http . StatusUnprocessableEntity )
opts . Labels = [ ] int64 { 5 }
}
func TestAPIEditPull ( t * testing . T ) {