diff options
Diffstat (limited to 'internal/db/users_test.go')
-rw-r--r-- | internal/db/users_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/internal/db/users_test.go b/internal/db/users_test.go index b13bf5be..c302d2e8 100644 --- a/internal/db/users_test.go +++ b/internal/db/users_test.go @@ -105,6 +105,7 @@ func TestUsers(t *testing.T) { {"List", usersList}, {"ListFollowers", usersListFollowers}, {"ListFollowings", usersListFollowings}, + {"SearchByName", usersSearchByName}, {"Update", usersUpdate}, {"UseCustomAvatar", usersUseCustomAvatar}, } { @@ -756,6 +757,46 @@ func usersListFollowings(t *testing.T, db *users) { assert.Equal(t, alice.ID, got[0].ID) } +func usersSearchByName(t *testing.T, db *users) { + ctx := context.Background() + + alice, err := db.Create(ctx, "alice", "alice@example.com", CreateUserOptions{FullName: "Alice Jordan"}) + require.NoError(t, err) + bob, err := db.Create(ctx, "bob", "bob@example.com", CreateUserOptions{FullName: "Bob Jordan"}) + require.NoError(t, err) + + t.Run("search for username alice", func(t *testing.T) { + users, count, err := db.SearchByName(ctx, "Li", 1, 1, "") + require.NoError(t, err) + require.Len(t, users, int(count)) + assert.Equal(t, int64(1), count) + assert.Equal(t, alice.ID, users[0].ID) + }) + + t.Run("search for username bob", func(t *testing.T) { + users, count, err := db.SearchByName(ctx, "oB", 1, 1, "") + require.NoError(t, err) + require.Len(t, users, int(count)) + assert.Equal(t, int64(1), count) + assert.Equal(t, bob.ID, users[0].ID) + }) + + t.Run("search for full name jordan", func(t *testing.T) { + users, count, err := db.SearchByName(ctx, "Jo", 1, 10, "") + require.NoError(t, err) + require.Len(t, users, int(count)) + assert.Equal(t, int64(2), count) + }) + + t.Run("search for full name jordan ORDER BY id DESC LIMIT 1", func(t *testing.T) { + users, count, err := db.SearchByName(ctx, "Jo", 1, 1, "id DESC") + require.NoError(t, err) + require.Len(t, users, 1) + assert.Equal(t, int64(2), count) + assert.Equal(t, bob.ID, users[0].ID) + }) +} + func usersUpdate(t *testing.T, db *users) { ctx := context.Background() |