2020-01-10 15:53:53 +08:00
// Copyright 2020 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2020-01-10 15:53:53 +08:00
package convert
import (
"testing"
2022-11-19 09:12:33 +01:00
"code.gitea.io/gitea/models/db"
2022-06-13 17:37:59 +08:00
issues_model "code.gitea.io/gitea/models/issues"
2021-11-28 19:58:28 +08:00
"code.gitea.io/gitea/models/perm"
2023-06-22 21:08:08 +08:00
access_model "code.gitea.io/gitea/models/perm/access"
2021-12-10 09:27:50 +08:00
repo_model "code.gitea.io/gitea/models/repo"
2021-11-12 22:36:47 +08:00
"code.gitea.io/gitea/models/unittest"
2022-01-19 23:26:57 +00:00
"code.gitea.io/gitea/modules/git"
2020-03-03 06:31:55 +08:00
"code.gitea.io/gitea/modules/structs"
2020-01-10 15:53:53 +08:00
"github.com/stretchr/testify/assert"
)
func TestPullRequest_APIFormat ( t * testing . T ) {
2022-01-20 18:46:10 +01:00
// with HeadRepo
2021-11-12 22:36:47 +08:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2022-08-16 10:22:25 +08:00
headRepo := unittest . AssertExistsAndLoadBean ( t , & repo_model . Repository { ID : 1 } )
pr := unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2022-11-19 09:12:33 +01:00
assert . NoError ( t , pr . LoadAttributes ( db . DefaultContext ) )
assert . NoError ( t , pr . LoadIssue ( db . DefaultContext ) )
2022-01-19 23:26:57 +00:00
apiPullRequest := ToAPIPullRequest ( git . DefaultContext , pr , nil )
2020-01-10 15:53:53 +08:00
assert . NotNil ( t , apiPullRequest )
2020-03-03 06:31:55 +08:00
assert . EqualValues ( t , & structs . PRBranchInfo {
Name : "branch1" ,
Ref : "refs/pull/2/head" ,
Sha : "4a357436d925b5c974181ff12a994538ddc5a269" ,
RepoID : 1 ,
2023-06-22 21:08:08 +08:00
Repository : ToRepo ( db . DefaultContext , headRepo , access_model . Permission { AccessMode : perm . AccessModeRead } ) ,
2020-03-03 06:31:55 +08:00
} , apiPullRequest . Head )
2020-01-31 22:13:51 +01:00
2022-01-20 18:46:10 +01:00
// withOut HeadRepo
2022-08-16 10:22:25 +08:00
pr = unittest . AssertExistsAndLoadBean ( t , & issues_model . PullRequest { ID : 1 } )
2022-11-19 09:12:33 +01:00
assert . NoError ( t , pr . LoadIssue ( db . DefaultContext ) )
assert . NoError ( t , pr . LoadAttributes ( db . DefaultContext ) )
2020-01-31 22:13:51 +01:00
// simulate fork deletion
pr . HeadRepo = nil
pr . HeadRepoID = 100000
2022-01-19 23:26:57 +00:00
apiPullRequest = ToAPIPullRequest ( git . DefaultContext , pr , nil )
2020-01-31 22:13:51 +01:00
assert . NotNil ( t , apiPullRequest )
assert . Nil ( t , apiPullRequest . Head . Repository )
assert . EqualValues ( t , - 1 , apiPullRequest . Head . RepoID )
2020-01-10 15:53:53 +08:00
}