@@ -228,34 +228,46 @@ func testSearchRepositoryPublic(t *testing.T) {
228228}
229229
230230func testSearchRepositoryRestricted (t * testing.T ) {
231- defer test .MockVariableValue (& setting .Service .RequireSignInViewStrict , true )()
232231 user2 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 2 })
233232 restrictedUser := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 29 , IsRestricted : true })
234233
235- performSearch := func (t * testing.T , user * user_model.User ) (publicRepoIDs []int64 , totalCount int ) {
234+ performSearch := func (t * testing.T , user * user_model.User ) (publicRepoIDs []int64 ) {
236235 repos , count , err := repo_model .SearchRepositoryByName (t .Context (), repo_model.SearchRepoOptions {
237236 ListOptions : db.ListOptions {Page : 1 , PageSize : 10000 },
238237 Actor : user ,
239238 })
240239 require .Nil (t , err )
241- totalCount = int (count )
242- assert .Len (t , repos , totalCount )
240+ assert .Len (t , repos , int (count ))
243241 for _ , repo := range repos {
244242 require .NoError (t , repo .LoadOwner (t .Context ()))
245243 if repo .Owner .Visibility == structs .VisibleTypePublic && ! repo .IsPrivate {
246244 publicRepoIDs = append (publicRepoIDs , repo .ID )
247245 }
248246 }
249- return publicRepoIDs , totalCount
247+ return publicRepoIDs
250248 }
251249
252- normalUserPublicRepoIDs , totalCount := performSearch (t , user2 )
253- assert .Positive (t , totalCount )
254- assert .Greater (t , len (normalUserPublicRepoIDs ), 1 ) // quite a lot
250+ normalPublicRepoIDs := performSearch (t , user2 )
251+ require .Greater (t , len (normalPublicRepoIDs ), 10 ) // quite a lot
252+
253+ t .Run ("RestrictedUser-NoSignInRequirement" , func (t * testing.T ) {
254+ // restricted user can also see public repositories if no "required sign-in"
255+ repoIDs := performSearch (t , restrictedUser )
256+ assert .ElementsMatch (t , normalPublicRepoIDs , repoIDs )
257+ })
255258
256- restrictedUserPublicRepoIDs , totalCount := performSearch (t , restrictedUser )
257- assert .Equal (t , 1 , totalCount ) // restricted user can see only their own repo
258- assert .Equal (t , []int64 {4 }, restrictedUserPublicRepoIDs )
259+ defer test .MockVariableValue (& setting .Service .RequireSignInViewStrict , true )()
260+
261+ t .Run ("NormalUser-RequiredSignIn" , func (t * testing.T ) {
262+ // normal user can still see all public repos, not affected by "required sign-in"
263+ repoIDs := performSearch (t , user2 )
264+ assert .ElementsMatch (t , normalPublicRepoIDs , repoIDs )
265+ })
266+ t .Run ("RestrictedUser-RequiredSignIn" , func (t * testing.T ) {
267+ // restricted user can see only their own repo
268+ repoIDs := performSearch (t , restrictedUser )
269+ assert .Equal (t , []int64 {4 }, repoIDs )
270+ })
259271}
260272
261273func testSearchRepositoryPrivate (t * testing.T ) {
0 commit comments