2017-01-01 21:15:09 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2017-01-01 21:15:09 +03:00
2022-06-13 12:37:59 +03:00
package issues_test
2017-01-01 21:15:09 +03:00
import (
"testing"
2021-09-19 14:49:59 +03:00
"code.gitea.io/gitea/models/db"
2022-06-13 12:37:59 +03:00
issues_model "code.gitea.io/gitea/models/issues"
2023-09-09 00:09:23 +03:00
repo_model "code.gitea.io/gitea/models/repo"
2021-11-12 17:36:47 +03:00
"code.gitea.io/gitea/models/unittest"
2023-05-25 05:06:27 +03:00
user_model "code.gitea.io/gitea/models/user"
2023-06-09 17:34:49 +03:00
"code.gitea.io/gitea/modules/setting"
2021-11-17 15:34:35 +03:00
2017-01-01 21:15:09 +03:00
"github.com/stretchr/testify/assert"
)
func TestPullRequest_LoadAttributes ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 05:22:25 +03:00
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2022-11-19 11:12:33 +03:00
assert . NoError ( t , pr . LoadAttributes ( db . DefaultContext ) )
2017-01-01 21:15:09 +03:00
assert . NotNil ( t , pr . Merger )
assert . Equal ( t , pr . MergerID , pr . Merger . ID )
}
func TestPullRequest_LoadIssue ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 05:22:25 +03:00
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2022-11-19 11:12:33 +03:00
assert . NoError ( t , pr . LoadIssue ( db . DefaultContext ) )
2017-01-01 21:15:09 +03:00
assert . NotNil ( t , pr . Issue )
assert . Equal ( t , int64 ( 2 ) , pr . Issue . ID )
2022-11-19 11:12:33 +03:00
assert . NoError ( t , pr . LoadIssue ( db . DefaultContext ) )
2017-01-09 06:15:07 +03:00
assert . NotNil ( t , pr . Issue )
assert . Equal ( t , int64 ( 2 ) , pr . Issue . ID )
2017-01-01 21:15:09 +03:00
}
2020-03-03 01:31:55 +03:00
func TestPullRequest_LoadBaseRepo ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 05:22:25 +03:00
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2022-11-19 11:12:33 +03:00
assert . NoError ( t , pr . LoadBaseRepo ( db . DefaultContext ) )
2017-01-01 21:15:09 +03:00
assert . NotNil ( t , pr . BaseRepo )
assert . Equal ( t , pr . BaseRepoID , pr . BaseRepo . ID )
2022-11-19 11:12:33 +03:00
assert . NoError ( t , pr . LoadBaseRepo ( db . DefaultContext ) )
2017-01-09 06:15:07 +03:00
assert . NotNil ( t , pr . BaseRepo )
assert . Equal ( t , pr . BaseRepoID , pr . BaseRepo . ID )
2017-01-01 21:15:09 +03:00
}
2020-03-03 01:31:55 +03:00
func TestPullRequest_LoadHeadRepo ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 05:22:25 +03:00
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2022-11-19 11:12:33 +03:00
assert . NoError ( t , pr . LoadHeadRepo ( db . DefaultContext ) )
2017-01-01 21:15:09 +03:00
assert . NotNil ( t , pr . HeadRepo )
assert . Equal ( t , pr . HeadRepoID , pr . HeadRepo . ID )
}
// TODO TestMerge
// TODO TestNewPullRequest
func TestPullRequestsNewest ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2023-09-15 09:13:19 +03:00
prs , count , err := issues_model . PullRequests ( db . DefaultContext , 1 , & issues_model . PullRequestsOptions {
2021-09-24 14:32:56 +03:00
ListOptions : db . ListOptions {
2020-01-24 22:00:29 +03:00
Page : 1 ,
} ,
2017-01-01 21:15:09 +03:00
State : "open" ,
SortType : "newest" ,
} )
assert . NoError ( t , err )
2020-01-17 09:03:40 +03:00
assert . EqualValues ( t , 3 , count )
if assert . Len ( t , prs , 3 ) {
assert . EqualValues ( t , 5 , prs [ 0 ] . ID )
assert . EqualValues ( t , 2 , prs [ 1 ] . ID )
assert . EqualValues ( t , 1 , prs [ 2 ] . ID )
2017-08-28 12:17:45 +03:00
}
2017-01-01 21:15:09 +03:00
}
2023-05-25 05:06:27 +03:00
func TestLoadRequestedReviewers ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
pull := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
assert . NoError ( t , pull . LoadIssue ( db . DefaultContext ) )
issue := pull . Issue
assert . NoError ( t , issue . LoadRepo ( db . DefaultContext ) )
assert . Len ( t , pull . RequestedReviewers , 0 )
user1 , err := user_model . GetUserByID ( db . DefaultContext , 1 )
assert . NoError ( t , err )
2023-08-10 05:39:21 +03:00
comment , err := issues_model . AddReviewRequest ( db . DefaultContext , issue , user1 , & user_model . User { } )
2023-05-25 05:06:27 +03:00
assert . NoError ( t , err )
assert . NotNil ( t , comment )
assert . NoError ( t , pull . LoadRequestedReviewers ( db . DefaultContext ) )
assert . Len ( t , pull . RequestedReviewers , 1 )
2023-08-10 05:39:21 +03:00
comment , err = issues_model . RemoveReviewRequest ( db . DefaultContext , issue , user1 , & user_model . User { } )
2023-05-25 05:06:27 +03:00
assert . NoError ( t , err )
assert . NotNil ( t , comment )
pull . RequestedReviewers = nil
assert . NoError ( t , pull . LoadRequestedReviewers ( db . DefaultContext ) )
assert . Empty ( t , pull . RequestedReviewers )
}
2017-01-01 21:15:09 +03:00
func TestPullRequestsOldest ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2023-09-15 09:13:19 +03:00
prs , count , err := issues_model . PullRequests ( db . DefaultContext , 1 , & issues_model . PullRequestsOptions {
2021-09-24 14:32:56 +03:00
ListOptions : db . ListOptions {
2020-01-24 22:00:29 +03:00
Page : 1 ,
} ,
2017-01-01 21:15:09 +03:00
State : "open" ,
SortType : "oldest" ,
} )
assert . NoError ( t , err )
2020-01-17 09:03:40 +03:00
assert . EqualValues ( t , 3 , count )
if assert . Len ( t , prs , 3 ) {
assert . EqualValues ( t , 1 , prs [ 0 ] . ID )
assert . EqualValues ( t , 2 , prs [ 1 ] . ID )
assert . EqualValues ( t , 5 , prs [ 2 ] . ID )
2017-08-28 12:17:45 +03:00
}
2017-01-01 21:15:09 +03:00
}
func TestGetUnmergedPullRequest ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-11-19 11:12:33 +03:00
pr , err := issues_model . GetUnmergedPullRequest ( db . DefaultContext , 1 , 1 , "branch2" , "master" , issues_model . PullRequestFlowGithub )
2017-01-01 21:15:09 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 2 ) , pr . ID )
2022-11-19 11:12:33 +03:00
_ , err = issues_model . GetUnmergedPullRequest ( db . DefaultContext , 1 , 9223372036854775807 , "branch1" , "master" , issues_model . PullRequestFlowGithub )
2017-01-01 21:15:09 +03:00
assert . Error ( t , err )
2022-06-13 12:37:59 +03:00
assert . True ( t , issues_model . IsErrPullRequestNotExist ( err ) )
2017-01-01 21:15:09 +03:00
}
2022-01-03 22:45:58 +03:00
func TestHasUnmergedPullRequestsByHeadInfo ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-06-13 12:37:59 +03:00
exist , err := issues_model . HasUnmergedPullRequestsByHeadInfo ( db . DefaultContext , 1 , "branch2" )
2022-01-03 22:45:58 +03:00
assert . NoError ( t , err )
2023-04-23 00:56:27 +03:00
assert . True ( t , exist )
2022-01-03 22:45:58 +03:00
2022-06-13 12:37:59 +03:00
exist , err = issues_model . HasUnmergedPullRequestsByHeadInfo ( db . DefaultContext , 1 , "not_exist_branch" )
2022-01-03 22:45:58 +03:00
assert . NoError ( t , err )
2023-04-23 00:56:27 +03:00
assert . False ( t , exist )
2022-01-03 22:45:58 +03:00
}
2017-01-01 21:15:09 +03:00
func TestGetUnmergedPullRequestsByHeadInfo ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2023-07-22 17:14:27 +03:00
prs , err := issues_model . GetUnmergedPullRequestsByHeadInfo ( db . DefaultContext , 1 , "branch2" )
2017-01-01 21:15:09 +03:00
assert . NoError ( t , err )
assert . Len ( t , prs , 1 )
for _ , pr := range prs {
assert . Equal ( t , int64 ( 1 ) , pr . HeadRepoID )
assert . Equal ( t , "branch2" , pr . HeadBranch )
}
}
func TestGetUnmergedPullRequestsByBaseInfo ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2023-07-22 17:14:27 +03:00
prs , err := issues_model . GetUnmergedPullRequestsByBaseInfo ( db . DefaultContext , 1 , "master" )
2017-01-01 21:15:09 +03:00
assert . NoError ( t , err )
assert . Len ( t , prs , 1 )
pr := prs [ 0 ]
assert . Equal ( t , int64 ( 2 ) , pr . ID )
assert . Equal ( t , int64 ( 1 ) , pr . BaseRepoID )
assert . Equal ( t , "master" , pr . BaseBranch )
}
func TestGetPullRequestByIndex ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-06-13 12:37:59 +03:00
pr , err := issues_model . GetPullRequestByIndex ( db . DefaultContext , 1 , 2 )
2017-01-01 21:15:09 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 1 ) , pr . BaseRepoID )
assert . Equal ( t , int64 ( 2 ) , pr . Index )
2022-06-13 12:37:59 +03:00
_ , err = issues_model . GetPullRequestByIndex ( db . DefaultContext , 9223372036854775807 , 9223372036854775807 )
2017-01-01 21:15:09 +03:00
assert . Error ( t , err )
2022-06-13 12:37:59 +03:00
assert . True ( t , issues_model . IsErrPullRequestNotExist ( err ) )
2021-10-05 17:41:48 +03:00
2022-06-13 12:37:59 +03:00
_ , err = issues_model . GetPullRequestByIndex ( db . DefaultContext , 1 , 0 )
2021-10-05 17:41:48 +03:00
assert . Error ( t , err )
2022-06-13 12:37:59 +03:00
assert . True ( t , issues_model . IsErrPullRequestNotExist ( err ) )
2017-01-01 21:15:09 +03:00
}
func TestGetPullRequestByID ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-06-13 12:37:59 +03:00
pr , err := issues_model . GetPullRequestByID ( db . DefaultContext , 1 )
2017-01-01 21:15:09 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 1 ) , pr . ID )
assert . Equal ( t , int64 ( 2 ) , pr . IssueID )
2022-06-13 12:37:59 +03:00
_ , err = issues_model . GetPullRequestByID ( db . DefaultContext , 9223372036854775807 )
2017-01-01 21:15:09 +03:00
assert . Error ( t , err )
2022-06-13 12:37:59 +03:00
assert . True ( t , issues_model . IsErrPullRequestNotExist ( err ) )
2017-01-01 21:15:09 +03:00
}
func TestGetPullRequestByIssueID ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-06-13 12:37:59 +03:00
pr , err := issues_model . GetPullRequestByIssueID ( db . DefaultContext , 2 )
2017-01-01 21:15:09 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 2 ) , pr . IssueID )
2022-06-13 12:37:59 +03:00
_ , err = issues_model . GetPullRequestByIssueID ( db . DefaultContext , 9223372036854775807 )
2017-01-01 21:15:09 +03:00
assert . Error ( t , err )
2022-06-13 12:37:59 +03:00
assert . True ( t , issues_model . IsErrPullRequestNotExist ( err ) )
2017-01-01 21:15:09 +03:00
}
func TestPullRequest_Update ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 05:22:25 +03:00
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2017-02-07 14:47:55 +03:00
pr . BaseBranch = "baseBranch"
pr . HeadBranch = "headBranch"
2023-10-11 07:24:07 +03:00
pr . Update ( db . DefaultContext )
2017-01-01 21:15:09 +03:00
2022-08-16 05:22:25 +03:00
pr = unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : pr . ID } )
2017-01-01 21:15:09 +03:00
assert . Equal ( t , "baseBranch" , pr . BaseBranch )
assert . Equal ( t , "headBranch" , pr . HeadBranch )
2021-11-16 11:53:21 +03:00
unittest . CheckConsistencyFor ( t , pr )
2017-01-01 21:15:09 +03:00
}
func TestPullRequest_UpdateCols ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-06-13 12:37:59 +03:00
pr := & issues_model . PullRequest {
2017-01-01 21:15:09 +03:00
ID : 1 ,
BaseBranch : "baseBranch" ,
HeadBranch : "headBranch" ,
}
2023-10-11 07:24:07 +03:00
assert . NoError ( t , pr . UpdateCols ( db . DefaultContext , "head_branch" ) )
2017-01-01 21:15:09 +03:00
2022-08-16 05:22:25 +03:00
pr = unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2017-01-01 21:15:09 +03:00
assert . Equal ( t , "master" , pr . BaseBranch )
assert . Equal ( t , "headBranch" , pr . HeadBranch )
2021-11-16 11:53:21 +03:00
unittest . CheckConsistencyFor ( t , pr )
2017-01-01 21:15:09 +03:00
}
func TestPullRequestList_LoadAttributes ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2017-01-01 21:15:09 +03:00
2022-06-13 12:37:59 +03:00
prs := [ ] * issues_model . PullRequest {
2022-08-16 05:22:25 +03:00
unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } ) ,
unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 2 } ) ,
2017-01-01 21:15:09 +03:00
}
2023-07-22 17:14:27 +03:00
assert . NoError ( t , issues_model . PullRequestList ( prs ) . LoadAttributes ( db . DefaultContext ) )
2017-01-01 21:15:09 +03:00
for _ , pr := range prs {
assert . NotNil ( t , pr . Issue )
assert . Equal ( t , pr . IssueID , pr . Issue . ID )
}
2017-01-09 06:15:07 +03:00
2023-07-22 17:14:27 +03:00
assert . NoError ( t , issues_model . PullRequestList ( [ ] * issues_model . PullRequest { } ) . LoadAttributes ( db . DefaultContext ) )
2017-01-01 21:15:09 +03:00
}
// TODO TestAddTestPullRequestTask
2018-08-13 22:04:39 +03:00
func TestPullRequest_IsWorkInProgress ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2018-08-13 22:04:39 +03:00
2022-08-16 05:22:25 +03:00
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 2 } )
2022-11-19 11:12:33 +03:00
pr . LoadIssue ( db . DefaultContext )
2018-08-13 22:04:39 +03:00
2023-10-11 07:24:07 +03:00
assert . False ( t , pr . IsWorkInProgress ( db . DefaultContext ) )
2018-08-13 22:04:39 +03:00
pr . Issue . Title = "WIP: " + pr . Issue . Title
2023-10-11 07:24:07 +03:00
assert . True ( t , pr . IsWorkInProgress ( db . DefaultContext ) )
2018-08-13 22:04:39 +03:00
pr . Issue . Title = "[wip]: " + pr . Issue . Title
2023-10-11 07:24:07 +03:00
assert . True ( t , pr . IsWorkInProgress ( db . DefaultContext ) )
2018-08-13 22:04:39 +03:00
}
func TestPullRequest_GetWorkInProgressPrefixWorkInProgress ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2018-08-13 22:04:39 +03:00
2022-08-16 05:22:25 +03:00
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 2 } )
2022-11-19 11:12:33 +03:00
pr . LoadIssue ( db . DefaultContext )
2018-08-13 22:04:39 +03:00
2022-11-19 11:12:33 +03:00
assert . Empty ( t , pr . GetWorkInProgressPrefix ( db . DefaultContext ) )
2018-08-13 22:04:39 +03:00
original := pr . Issue . Title
pr . Issue . Title = "WIP: " + original
2022-11-19 11:12:33 +03:00
assert . Equal ( t , "WIP:" , pr . GetWorkInProgressPrefix ( db . DefaultContext ) )
2018-08-13 22:04:39 +03:00
pr . Issue . Title = "[wip] " + original
2022-11-19 11:12:33 +03:00
assert . Equal ( t , "[wip]" , pr . GetWorkInProgressPrefix ( db . DefaultContext ) )
2018-08-13 22:04:39 +03:00
}
2022-06-13 12:37:59 +03:00
func TestDeleteOrphanedObjects ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
countBefore , err := db . GetEngine ( db . DefaultContext ) . Count ( & issues_model . PullRequest { } )
assert . NoError ( t , err )
_ , err = db . GetEngine ( db . DefaultContext ) . Insert ( & issues_model . PullRequest { IssueID : 1000 } , & issues_model . PullRequest { IssueID : 1001 } , & issues_model . PullRequest { IssueID : 1003 } )
assert . NoError ( t , err )
2022-11-19 11:12:33 +03:00
orphaned , err := db . CountOrphanedObjects ( db . DefaultContext , "pull_request" , "issue" , "pull_request.issue_id=issue.id" )
2022-06-13 12:37:59 +03:00
assert . NoError ( t , err )
assert . EqualValues ( t , 3 , orphaned )
2022-11-19 11:12:33 +03:00
err = db . DeleteOrphanedObjects ( db . DefaultContext , "pull_request" , "issue" , "pull_request.issue_id=issue.id" )
2022-06-13 12:37:59 +03:00
assert . NoError ( t , err )
countAfter , err := db . GetEngine ( db . DefaultContext ) . Count ( & issues_model . PullRequest { } )
assert . NoError ( t , err )
assert . EqualValues ( t , countBefore , countAfter )
}
2023-06-08 11:56:05 +03:00
func TestParseCodeOwnersLine ( t * testing . T ) {
type CodeOwnerTest struct {
Line string
Tokens [ ] string
}
given := [ ] CodeOwnerTest {
{ Line : "" , Tokens : nil } ,
{ Line : "# comment" , Tokens : [ ] string { } } ,
{ Line : "!.* @user1 @org1/team1" , Tokens : [ ] string { "!.*" , "@user1" , "@org1/team1" } } ,
{ Line : ` .*\\.js @user2 #comment ` , Tokens : [ ] string { ` .*\.js ` , "@user2" } } ,
2023-09-14 05:59:53 +03:00
{ Line : ` docs/(aws|google|azure)/[^/]*\\.(md|txt) @org3 @org2/team2 ` , Tokens : [ ] string { ` docs/(aws|google|azure)/[^/]*\.(md|txt) ` , "@org3" , "@org2/team2" } } ,
{ Line : ` \#path @org3 ` , Tokens : [ ] string { ` #path ` , "@org3" } } ,
{ Line : ` path\ with\ spaces/ @org3 ` , Tokens : [ ] string { ` path with spaces/ ` , "@org3" } } ,
2023-06-08 11:56:05 +03:00
}
for _ , g := range given {
tokens := issues_model . TokenizeCodeOwnersLine ( g . Line )
assert . Equal ( t , g . Tokens , tokens , "Codeowners tokenizer failed" )
}
}
2023-06-09 17:34:49 +03:00
func TestGetApprovers ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 5 } )
// Official reviews are already deduplicated. Allow unofficial reviews
// to assert that there are no duplicated approvers.
setting . Repository . PullRequest . DefaultMergeMessageOfficialApproversOnly = false
2023-10-11 07:24:07 +03:00
approvers := pr . GetApprovers ( db . DefaultContext )
2023-09-14 05:59:53 +03:00
expected := "Reviewed-by: User Five <user5@example.com>\nReviewed-by: Org Six <org6@example.com>\n"
2023-06-09 17:34:49 +03:00
assert . EqualValues ( t , expected , approvers )
}
2023-09-09 00:09:23 +03:00
2024-02-24 11:18:39 +03:00
func TestGetPullRequestByMergedCommit ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
pr , err := issues_model . GetPullRequestByMergedCommit ( db . DefaultContext , 1 , "1a8823cd1a9549fde083f992f6b9b87a7ab74fb3" )
assert . NoError ( t , err )
assert . EqualValues ( t , 1 , pr . ID )
_ , err = issues_model . GetPullRequestByMergedCommit ( db . DefaultContext , 0 , "1a8823cd1a9549fde083f992f6b9b87a7ab74fb3" )
assert . ErrorAs ( t , err , & issues_model . ErrPullRequestNotExist { } )
_ , err = issues_model . GetPullRequestByMergedCommit ( db . DefaultContext , 1 , "" )
assert . ErrorAs ( t , err , & issues_model . ErrPullRequestNotExist { } )
}
2023-09-09 00:09:23 +03:00
func TestMigrate_InsertPullRequests ( t * testing . T ) {
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
reponame := "repo1"
repo := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { Name : reponame } )
owner := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : repo . OwnerID } )
i := & issues_model . Issue {
RepoID : repo . ID ,
Repo : repo ,
Title : "title1" ,
Content : "issuecontent1" ,
IsPull : true ,
PosterID : owner . ID ,
Poster : owner ,
}
p := & issues_model . PullRequest {
Issue : i ,
}
err := issues_model . InsertPullRequests ( db . DefaultContext , p )
assert . NoError ( t , err )
_ = unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { IssueID : i . ID } )
unittest . CheckConsistencyFor ( t , & issues_model . Issue { } , & issues_model . PullRequest { } )
}