newsbox/models/user_test.go
Adriano Caloiaro 8ae801ae5f
Initial commit
2023-02-15 08:57:48 -08:00

80 lines
1.5 KiB
Go

package models
func (ms *ModelSuite) Test_User_Create() {
count, err := ms.DB.Count("users")
ms.NoError(err)
ms.Equal(0, count)
u := &User{
Email: "mark@example.com",
Password: "password",
PasswordConfirmation: "password",
}
ms.Zero(u.PasswordHash)
verrs, err := u.Create(ms.DB)
ms.NoError(err)
ms.False(verrs.HasAny())
ms.NotZero(u.PasswordHash)
count, err = ms.DB.Count("users")
ms.NoError(err)
ms.Equal(1, count)
}
func (ms *ModelSuite) Test_User_Create_ValidationErrors() {
count, err := ms.DB.Count("users")
ms.NoError(err)
ms.Equal(0, count)
u := &User{
Password: "password",
}
ms.Zero(u.PasswordHash)
verrs, err := u.Create(ms.DB)
ms.NoError(err)
ms.True(verrs.HasAny())
count, err = ms.DB.Count("users")
ms.NoError(err)
ms.Equal(0, count)
}
func (ms *ModelSuite) Test_User_Create_UserExists() {
count, err := ms.DB.Count("users")
ms.NoError(err)
ms.Equal(0, count)
u := &User{
Email: "mark@example.com",
Password: "password",
PasswordConfirmation: "password",
}
ms.Zero(u.PasswordHash)
verrs, err := u.Create(ms.DB)
ms.NoError(err)
ms.False(verrs.HasAny())
ms.NotZero(u.PasswordHash)
count, err = ms.DB.Count("users")
ms.NoError(err)
ms.Equal(1, count)
u = &User{
Email: "mark@example.com",
Password: "password",
}
verrs, err = u.Create(ms.DB)
ms.NoError(err)
ms.True(verrs.HasAny())
count, err = ms.DB.Count("users")
ms.NoError(err)
ms.Equal(1, count)
}