Skip to content

Commit 7e7a3cc

Browse files
committed
fine tune tests
1 parent 5ae0753 commit 7e7a3cc

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

models/repo/repo_list_test.go

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -228,34 +228,46 @@ func testSearchRepositoryPublic(t *testing.T) {
228228
}
229229

230230
func 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

261273
func testSearchRepositoryPrivate(t *testing.T) {

0 commit comments

Comments
 (0)