@@ -23,6 +23,7 @@ import (
23
23
"code.gitea.io/gitea/modules/setting"
24
24
api "code.gitea.io/gitea/modules/structs"
25
25
"code.gitea.io/gitea/modules/test"
26
+ "code.gitea.io/gitea/modules/util"
26
27
"code.gitea.io/gitea/tests"
27
28
28
29
"github.com/stretchr/testify/assert"
@@ -100,22 +101,29 @@ func TestEmptyRepoAddFile(t *testing.T) {
100
101
assert .Contains (t , resp .Body .String (), "test-file.md" )
101
102
102
103
// 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 )
119
127
}
120
128
121
129
func TestEmptyRepoUploadFile (t * testing.T ) {
0 commit comments