@@ -23,6 +23,7 @@ import (
2323 "code.gitea.io/gitea/modules/setting"
2424 api "code.gitea.io/gitea/modules/structs"
2525 "code.gitea.io/gitea/modules/test"
26+ "code.gitea.io/gitea/modules/util"
2627 "code.gitea.io/gitea/tests"
2728
2829 "github.com/stretchr/testify/assert"
@@ -100,22 +101,29 @@ func TestEmptyRepoAddFile(t *testing.T) {
100101 assert .Contains (t , resp .Body .String (), "test-file.md" )
101102
102103 // if the repo is in incorrect state, it should be able to self-heal (recover to correct state)
103- user30EmptyRepo := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerID : 30 , Name : "empty" })
104- user30EmptyRepo .IsEmpty = true
105- user30EmptyRepo .DefaultBranch = "no-such"
106- _ , err := db .GetEngine (db .DefaultContext ).ID (user30EmptyRepo .ID ).Cols ("is_empty" , "default_branch" ).Update (user30EmptyRepo )
107- require .NoError (t , err )
108- user30EmptyRepo = unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerID : 30 , Name : "empty" })
109- assert .True (t , user30EmptyRepo .IsEmpty )
110-
111- req = NewRequest (t , "GET" , "/user30/empty" )
112- resp = session .MakeRequest (t , req , http .StatusSeeOther )
113- redirect = test .RedirectURL (resp )
114- assert .Equal (t , "/user30/empty" , redirect )
115-
116- req = NewRequest (t , "GET" , "/user30/empty" )
117- resp = session .MakeRequest (t , req , http .StatusOK )
118- assert .Contains (t , resp .Body .String (), "test-file.md" )
104+ testEmptyOrBrokenRecover := func (t * testing.T , isEmpty , isBroken bool ) {
105+ user30EmptyRepo := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerID : 30 , Name : "empty" })
106+ user30EmptyRepo .IsEmpty = isEmpty
107+ user30EmptyRepo .Status = util .Iif (isBroken , repo_model .RepositoryBroken , repo_model .RepositoryReady )
108+ user30EmptyRepo .DefaultBranch = "no-such"
109+ _ , err := db .GetEngine (db .DefaultContext ).ID (user30EmptyRepo .ID ).Cols ("is_empty" , "status" , "default_branch" ).Update (user30EmptyRepo )
110+ require .NoError (t , err )
111+ user30EmptyRepo = unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerID : 30 , Name : "empty" })
112+ assert .Equal (t , isEmpty , user30EmptyRepo .IsEmpty )
113+ assert .Equal (t , isBroken , user30EmptyRepo .Status == repo_model .RepositoryBroken )
114+
115+ req = NewRequest (t , "GET" , "/user30/empty" )
116+ resp = session .MakeRequest (t , req , http .StatusSeeOther )
117+ redirect = test .RedirectURL (resp )
118+ assert .Equal (t , "/user30/empty" , redirect )
119+
120+ req = NewRequest (t , "GET" , "/user30/empty" )
121+ resp = session .MakeRequest (t , req , http .StatusOK )
122+ assert .Contains (t , resp .Body .String (), "test-file.md" )
123+ }
124+ testEmptyOrBrokenRecover (t , true , false )
125+ testEmptyOrBrokenRecover (t , false , true )
126+ testEmptyOrBrokenRecover (t , true , true )
119127}
120128
121129func TestEmptyRepoUploadFile (t * testing.T ) {
0 commit comments