Add tests for user deletion and improve error messages
This commit is contained in:
parent
50a43b86c0
commit
e0da55c63d
2 changed files with 28 additions and 4 deletions
|
@ -2,6 +2,7 @@ package store
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
sq "github.com/Masterminds/squirrel"
|
sq "github.com/Masterminds/squirrel"
|
||||||
|
|
||||||
|
@ -69,13 +70,13 @@ func (us *UserStore) getUsersByCondition(condition sq.Eq) ([]*model.User, error)
|
||||||
Where(condition).
|
Where(condition).
|
||||||
Query()
|
Query()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("cannot get users: %w", err)
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
|
||||||
users, err := us.usersFromRows(rows)
|
users, err := us.usersFromRows(rows)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("cannot get users from rows: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(users) == 0 {
|
if len(users) == 0 {
|
||||||
|
@ -92,12 +93,12 @@ func (us *UserStore) Create(user *model.User) (*model.User, error) {
|
||||||
|
|
||||||
res, err := query.Exec()
|
res, err := query.Exec()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("cannot insert user: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
id, err := res.LastInsertId()
|
id, err := res.LastInsertId()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("cannot get last insert id for created user: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return us.GetByID(int(id))
|
return us.GetByID(int(id))
|
||||||
|
|
|
@ -42,3 +42,26 @@ func TestGetByID(t *testing.T) {
|
||||||
require.Equal(t, user.Username, user2.Username)
|
require.Equal(t, user.Username, user2.Username)
|
||||||
require.Equal(t, user.Password, user2.Password)
|
require.Equal(t, user.Password, user2.Password)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDeleteUsername(t *testing.T) {
|
||||||
|
th, teardown := NewTestHelper(t)
|
||||||
|
defer teardown()
|
||||||
|
|
||||||
|
user := th.NewUser()
|
||||||
|
gameName := "awesome game"
|
||||||
|
game, err := th.store.Game().Create(gameName, user.ID)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
gameMember, err := th.store.Game().GetMember(game.ID, user.ID)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.NotZero(t, gameMember)
|
||||||
|
|
||||||
|
// ToDo: implement member deletion
|
||||||
|
/*
|
||||||
|
err = th.store.User().DeleteByUsername(user.Username)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
_, err = th.store.Game().GetMember(game.ID, user.ID)
|
||||||
|
require.Error(t, err)
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue