@@ -14,6 +14,7 @@ import (
1414 "testing"
1515
1616 auth_model "code.gitea.io/gitea/models/auth"
17+ "code.gitea.io/gitea/models/db"
1718 repo_model "code.gitea.io/gitea/models/repo"
1819 "code.gitea.io/gitea/models/unittest"
1920 user_model "code.gitea.io/gitea/models/user"
@@ -24,6 +25,7 @@ import (
2425 "code.gitea.io/gitea/tests"
2526
2627 "github.com/stretchr/testify/assert"
28+ "github.com/stretchr/testify/require"
2729)
2830
2931func testAPINewFile (t * testing.T , session * TestSession , user , repo , branch , treePath , content string ) * httptest.ResponseRecorder {
@@ -60,7 +62,9 @@ func TestEmptyRepoAddFile(t *testing.T) {
6062 session := loginUser (t , "user30" )
6163 req := NewRequest (t , "GET" , "/user30/empty" )
6264 resp := session .MakeRequest (t , req , http .StatusOK )
63- assert .Contains (t , resp .Body .String (), "empty-repo-guide" )
65+ bodyString := resp .Body .String ()
66+ assert .Contains (t , bodyString , "empty-repo-guide" )
67+ assert .True (t , test .IsNormalPageCompleted (bodyString ))
6468
6569 req = NewRequest (t , "GET" , "/user30/empty/_new/" + setting .Repository .DefaultBranch )
6670 resp = session .MakeRequest (t , req , http .StatusOK )
@@ -80,6 +84,21 @@ func TestEmptyRepoAddFile(t *testing.T) {
8084 req = NewRequest (t , "GET" , redirect )
8185 resp = session .MakeRequest (t , req , http .StatusOK )
8286 assert .Contains (t , resp .Body .String (), "newly-added-test-file" )
87+
88+ // the repo is not empty anymore
89+ req = NewRequest (t , "GET" , "/user30/empty" )
90+ resp = session .MakeRequest (t , req , http .StatusOK )
91+ assert .Contains (t , resp .Body .String (), "test-file.md" )
92+
93+ // if the repo is in incorrect state, it should be able to self-heal (recover to correct state)
94+ user30EmptyRepo := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerID : 30 , Name : "empty" })
95+ user30EmptyRepo .IsEmpty = true
96+ user30EmptyRepo .DefaultBranch = "no-such"
97+ _ , err := db .GetEngine (db .DefaultContext ).ID (user30EmptyRepo .ID ).Update (user30EmptyRepo )
98+ require .NoError (t , err )
99+ req = NewRequest (t , "GET" , "/user30/empty" )
100+ resp = session .MakeRequest (t , req , http .StatusOK )
101+ assert .Contains (t , resp .Body .String (), "test-file.md" )
83102}
84103
85104func TestEmptyRepoUploadFile (t * testing.T ) {
0 commit comments