0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-12-22 23:33:15 -05:00
forgejo/routers/web/repo/helper_test.go
Gusted b500c48fa0
feat: avoid sorting for MakeSelfOnTop
- Although sorting can be used to make the doer the first user of the
list, this isn't optimal and can be instead done with a linear search,
remove that entry and add the doer to the front of the slice.
- Extra unit test added.
2024-12-03 05:32:51 +01:00

37 lines
1 KiB
Go

// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package repo
import (
"testing"
"code.gitea.io/gitea/models/user"
"github.com/stretchr/testify/assert"
)
func TestMakeSelfOnTop(t *testing.T) {
users := MakeSelfOnTop(nil, []*user.User{{ID: 2}, {ID: 1}})
assert.Len(t, users, 2)
assert.EqualValues(t, 2, users[0].ID)
users = MakeSelfOnTop(&user.User{ID: 1}, []*user.User{{ID: 2}, {ID: 1}})
assert.Len(t, users, 2)
assert.EqualValues(t, 1, users[0].ID)
users = MakeSelfOnTop(&user.User{ID: 2}, []*user.User{{ID: 2}, {ID: 1}})
assert.Len(t, users, 2)
assert.EqualValues(t, 2, users[0].ID)
users = MakeSelfOnTop(&user.User{ID: 2}, []*user.User{{ID: 1}})
assert.Len(t, users, 1)
assert.EqualValues(t, 1, users[0].ID)
users = MakeSelfOnTop(&user.User{ID: 2}, []*user.User{{ID: 1}, {ID: 2}, {ID: 3}, {ID: 4}})
assert.Len(t, users, 4)
assert.EqualValues(t, 2, users[0].ID)
assert.EqualValues(t, 1, users[1].ID)
assert.EqualValues(t, 3, users[2].ID)
assert.EqualValues(t, 4, users[3].ID)
}