2018-10-15 11:52:52 +08:00
// Copyright 2018 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.
2019-09-15 23:28:25 +08:00
package release
2018-10-15 11:52:52 +08:00
import (
2019-09-15 23:28:25 +08:00
"path/filepath"
2018-10-15 11:52:52 +08:00
"testing"
2019-09-15 23:28:25 +08:00
"code.gitea.io/gitea/models"
2019-03-27 17:33:00 +08:00
"code.gitea.io/gitea/modules/git"
2018-10-15 11:52:52 +08:00
"github.com/stretchr/testify/assert"
)
2019-09-15 23:28:25 +08:00
func TestMain ( m * testing . M ) {
models . MainTest ( m , filepath . Join ( ".." , ".." ) )
}
2018-10-15 11:52:52 +08:00
func TestRelease_Create ( t * testing . T ) {
2019-09-15 23:28:25 +08:00
assert . NoError ( t , models . PrepareTestDatabase ( ) )
2018-10-15 11:52:52 +08:00
2019-09-15 23:28:25 +08:00
user := models . AssertExistsAndLoadBean ( t , & models . User { ID : 2 } ) . ( * models . User )
repo := models . AssertExistsAndLoadBean ( t , & models . Repository { ID : 1 } ) . ( * models . Repository )
repoPath := models . RepoPath ( user . Name , repo . Name )
2018-10-15 11:52:52 +08:00
gitRepo , err := git . OpenRepository ( repoPath )
assert . NoError ( t , err )
2019-11-13 07:01:19 +00:00
defer gitRepo . Close ( )
2018-10-15 11:52:52 +08:00
2019-09-15 23:28:25 +08:00
assert . NoError ( t , CreateRelease ( gitRepo , & models . Release {
2018-10-15 11:52:52 +08:00
RepoID : repo . ID ,
PublisherID : user . ID ,
TagName : "v0.1" ,
Target : "master" ,
Title : "v0.1 is released" ,
Note : "v0.1 is released" ,
IsDraft : false ,
IsPrerelease : false ,
IsTag : false ,
} , nil ) )
2019-09-15 23:28:25 +08:00
assert . NoError ( t , CreateRelease ( gitRepo , & models . Release {
2018-10-15 11:52:52 +08:00
RepoID : repo . ID ,
PublisherID : user . ID ,
TagName : "v0.1.1" ,
Target : "65f1bf27bc3bf70f64657658635e66094edbcb4d" ,
Title : "v0.1.1 is released" ,
Note : "v0.1.1 is released" ,
IsDraft : false ,
IsPrerelease : false ,
IsTag : false ,
} , nil ) )
2019-09-15 23:28:25 +08:00
assert . NoError ( t , CreateRelease ( gitRepo , & models . Release {
2018-10-15 11:52:52 +08:00
RepoID : repo . ID ,
PublisherID : user . ID ,
TagName : "v0.1.2" ,
Target : "65f1bf2" ,
Title : "v0.1.2 is released" ,
Note : "v0.1.2 is released" ,
IsDraft : false ,
IsPrerelease : false ,
IsTag : false ,
} , nil ) )
2019-09-15 23:28:25 +08:00
assert . NoError ( t , CreateRelease ( gitRepo , & models . Release {
2018-10-15 11:52:52 +08:00
RepoID : repo . ID ,
PublisherID : user . ID ,
TagName : "v0.1.3" ,
Target : "65f1bf2" ,
Title : "v0.1.3 is released" ,
Note : "v0.1.3 is released" ,
IsDraft : true ,
IsPrerelease : false ,
IsTag : false ,
} , nil ) )
2019-09-15 23:28:25 +08:00
assert . NoError ( t , CreateRelease ( gitRepo , & models . Release {
2018-10-15 11:52:52 +08:00
RepoID : repo . ID ,
PublisherID : user . ID ,
TagName : "v0.1.4" ,
Target : "65f1bf2" ,
Title : "v0.1.4 is released" ,
Note : "v0.1.4 is released" ,
IsDraft : false ,
IsPrerelease : true ,
IsTag : false ,
} , nil ) )
2019-09-15 23:28:25 +08:00
assert . NoError ( t , CreateRelease ( gitRepo , & models . Release {
2018-10-15 11:52:52 +08:00
RepoID : repo . ID ,
PublisherID : user . ID ,
TagName : "v0.1.5" ,
Target : "65f1bf2" ,
Title : "v0.1.5 is released" ,
Note : "v0.1.5 is released" ,
IsDraft : false ,
IsPrerelease : false ,
IsTag : true ,
} , nil ) )
}