Add user store tests
This commit is contained in:
parent
143c3a8b81
commit
5d82d485c8
37 changed files with 3674 additions and 3 deletions
|
@ -29,13 +29,13 @@ func NewStore(path string) (*Store, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
s.Conn = conn
|
||||
|
||||
if err := s.EnsureSchema(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
s.Conn = conn
|
||||
|
||||
// init stores
|
||||
s.userStore = NewUserStore(s)
|
||||
|
||||
return s, nil
|
||||
|
|
40
services/store/testlib.go
Normal file
40
services/store/testlib.go
Normal file
|
@ -0,0 +1,40 @@
|
|||
package store
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.ctrlz.es/mgdelacroix/rmsn/model"
|
||||
|
||||
"github.com/icrowley/fake"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
type TestHelper struct {
|
||||
t *testing.T
|
||||
store *Store
|
||||
}
|
||||
|
||||
func NewTestHelper(t *testing.T) (*TestHelper, func()) {
|
||||
s, err := NewStore(":memory:")
|
||||
require.NoError(t, err)
|
||||
|
||||
teardown := func() {
|
||||
require.NoError(t, s.Close())
|
||||
}
|
||||
|
||||
return &TestHelper{t: t, store: s}, teardown
|
||||
}
|
||||
|
||||
func (th *TestHelper) NewUser() *model.User {
|
||||
user := &model.User{
|
||||
Name: fake.FullName(),
|
||||
Mail: fake.EmailAddress(),
|
||||
Username: fake.UserName(),
|
||||
Password: fake.SimplePassword(),
|
||||
}
|
||||
|
||||
newUser, err := th.store.User().Create(user)
|
||||
require.NoError(th.t, err)
|
||||
|
||||
return newUser
|
||||
}
|
|
@ -70,7 +70,7 @@ func (us *UserStore) GetByID(id int) (*model.User, error) {
|
|||
|
||||
func (us *UserStore) Create(user *model.User) (*model.User, error) {
|
||||
query := us.Q().Insert("users").
|
||||
Columns(userColumns[0:len(userColumns)-1]...).
|
||||
Columns(userColumns[1:]...).
|
||||
Values(user.Name, user.Mail, user.Username, user.Password)
|
||||
|
||||
res, err := query.Exec()
|
||||
|
|
44
services/store/user_test.go
Normal file
44
services/store/user_test.go
Normal file
|
@ -0,0 +1,44 @@
|
|||
package store
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.ctrlz.es/mgdelacroix/rmsn/model"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestCreateUser(t *testing.T) {
|
||||
th, teardown := NewTestHelper(t)
|
||||
defer teardown()
|
||||
|
||||
user := &model.User{
|
||||
Name: "John",
|
||||
Mail: "john_doe@example.com",
|
||||
Username: "john_doe",
|
||||
Password: "mysupersecret",
|
||||
}
|
||||
|
||||
newUser, err := th.store.User().Create(user)
|
||||
require.NoError(t, err)
|
||||
require.NotZero(t, newUser.ID)
|
||||
require.Equal(t, user.Name, newUser.Name)
|
||||
require.Equal(t, user.Mail, newUser.Mail)
|
||||
require.Equal(t, user.Username, newUser.Username)
|
||||
require.Equal(t, user.Password, newUser.Password)
|
||||
}
|
||||
|
||||
func TestGetByID(t *testing.T) {
|
||||
th, teardown := NewTestHelper(t)
|
||||
defer teardown()
|
||||
|
||||
user := th.NewUser()
|
||||
|
||||
user2, err := th.store.User().GetByID(user.ID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, user.ID, user2.ID)
|
||||
require.Equal(t, user.Name, user2.Name)
|
||||
require.Equal(t, user.Mail, user2.Mail)
|
||||
require.Equal(t, user.Username, user2.Username)
|
||||
require.Equal(t, user.Password, user2.Password)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue