2018-10-15 06:52:52 +03: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.
package models
import (
"testing"
2019-03-27 12:33:00 +03:00
"code.gitea.io/gitea/modules/git"
2018-10-15 06:52:52 +03:00
"github.com/stretchr/testify/assert"
)
func TestRelease_Create ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
user := AssertExistsAndLoadBean ( t , & User { ID : 2 } ) . ( * User )
repo := AssertExistsAndLoadBean ( t , & Repository { ID : 1 } ) . ( * Repository )
repoPath := RepoPath ( user . Name , repo . Name )
gitRepo , err := git . OpenRepository ( repoPath )
assert . NoError ( t , err )
assert . NoError ( t , CreateRelease ( gitRepo , & Release {
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 ) )
assert . NoError ( t , CreateRelease ( gitRepo , & Release {
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 ) )
assert . NoError ( t , CreateRelease ( gitRepo , & Release {
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 ) )
assert . NoError ( t , CreateRelease ( gitRepo , & Release {
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 ) )
assert . NoError ( t , CreateRelease ( gitRepo , & Release {
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 ) )
assert . NoError ( t , CreateRelease ( gitRepo , & Release {
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 ) )
}
2019-01-01 02:00:54 +03:00
func TestRelease_MirrorDelete ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
user := AssertExistsAndLoadBean ( t , & User { ID : 2 } ) . ( * User )
repo := AssertExistsAndLoadBean ( t , & Repository { ID : 1 } ) . ( * Repository )
repoPath := RepoPath ( user . Name , repo . Name )
migrationOptions := MigrateRepoOptions {
Name : "test_mirror" ,
Description : "Test mirror" ,
IsPrivate : false ,
IsMirror : true ,
RemoteAddr : repoPath ,
2019-05-07 04:12:51 +03:00
Wiki : true ,
2019-01-01 02:00:54 +03:00
}
mirror , err := MigrateRepository ( user , user , migrationOptions )
assert . NoError ( t , err )
gitRepo , err := git . OpenRepository ( repoPath )
assert . NoError ( t , err )
findOptions := FindReleasesOptions { IncludeDrafts : true , IncludeTags : true }
initCount , err := GetReleaseCountByRepoID ( mirror . ID , findOptions )
assert . NoError ( t , err )
assert . NoError ( t , CreateRelease ( gitRepo , & Release {
RepoID : repo . ID ,
PublisherID : user . ID ,
TagName : "v0.2" ,
Target : "master" ,
Title : "v0.2 is released" ,
Note : "v0.2 is released" ,
IsDraft : false ,
IsPrerelease : false ,
IsTag : true ,
} , nil ) )
err = mirror . GetMirror ( )
assert . NoError ( t , err )
_ , ok := mirror . Mirror . runSync ( )
assert . True ( t , ok )
count , err := GetReleaseCountByRepoID ( mirror . ID , findOptions )
assert . EqualValues ( t , initCount + 1 , count )
release , err := GetRelease ( repo . ID , "v0.2" )
assert . NoError ( t , err )
assert . NoError ( t , DeleteReleaseByID ( release . ID , user , true ) )
_ , ok = mirror . Mirror . runSync ( )
assert . True ( t , ok )
count , err = GetReleaseCountByRepoID ( mirror . ID , findOptions )
assert . EqualValues ( t , initCount , count )
}