Start refactoring user tests
continuous-integration/drone/pr Build is failing
Details
continuous-integration/drone/pr Build is failing
Details
This commit is contained in:
parent
fc58082cab
commit
4906db8c2b
|
@ -23,9 +23,6 @@ import (
|
|||
)
|
||||
|
||||
func TestUserEmailConfirm(t *testing.T) {
|
||||
|
||||
db.LoadAndAssertFixtures(t)
|
||||
|
||||
type args struct {
|
||||
c *EmailConfirm
|
||||
}
|
||||
|
@ -66,6 +63,7 @@ func TestUserEmailConfirm(t *testing.T) {
|
|||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
if err := ConfirmEmail(tt.args.c); (err != nil) != tt.wantErr {
|
||||
t.Errorf("ConfirmEmail() error = %v, wantErr %v", err, tt.wantErr)
|
||||
}
|
||||
|
|
|
@ -25,43 +25,73 @@ import (
|
|||
)
|
||||
|
||||
func TestCreateUser(t *testing.T) {
|
||||
|
||||
db.LoadAndAssertFixtures(t)
|
||||
|
||||
// Our dummy user for testing
|
||||
dummyuser := &User{
|
||||
Username: "testuu",
|
||||
Username: "testuser",
|
||||
Password: "1234",
|
||||
Email: "noone@example.com",
|
||||
}
|
||||
|
||||
// Create a new user
|
||||
createdUser, err := CreateUser(dummyuser)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Create a second new user
|
||||
_, err = CreateUser(&User{Username: dummyuser.Username + "2", Email: dummyuser.Email + "m", Password: dummyuser.Password})
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Check if it fails to create the same user again
|
||||
_, err = CreateUser(dummyuser)
|
||||
assert.Error(t, err)
|
||||
|
||||
// Check if it fails to create a user with just the same username
|
||||
_, err = CreateUser(&User{Username: dummyuser.Username, Password: "12345", Email: "email@example.com"})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUsernameExists(err))
|
||||
|
||||
// Check if it fails to create one with the same email
|
||||
_, err = CreateUser(&User{Username: "noone", Password: "1234", Email: dummyuser.Email})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUserEmailExists(err))
|
||||
|
||||
// Check if it fails to create a user without password and username
|
||||
_, err = CreateUser(&User{})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrNoUsernamePassword(err))
|
||||
t.Run("normal", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
createdUser, err := CreateUser(dummyuser)
|
||||
assert.NoError(t, err)
|
||||
assert.NotZero(t, createdUser.Created)
|
||||
})
|
||||
t.Run("already existing", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
_, err := CreateUser(&User{
|
||||
Username: "user1",
|
||||
Password: "12345",
|
||||
Email: "email@example.com",
|
||||
})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUsernameExists(err))
|
||||
})
|
||||
t.Run("same email", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
_, err := CreateUser(&User{
|
||||
Username: "testuser",
|
||||
Password: "12345",
|
||||
Email: "user1@example.com",
|
||||
})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUserEmailExists(err))
|
||||
})
|
||||
t.Run("no username", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
_, err := CreateUser(&User{
|
||||
Username: "",
|
||||
Password: "12345",
|
||||
Email: "user1@example.com",
|
||||
})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrNoUsernamePassword(err))
|
||||
})
|
||||
t.Run("no password", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
_, err := CreateUser(&User{
|
||||
Username: "testuser",
|
||||
Password: "",
|
||||
Email: "user1@example.com",
|
||||
})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrNoUsernamePassword(err))
|
||||
})
|
||||
t.Run("no email", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
db.LoadAndAssertFixtures(t)
|
||||
_, err := CreateUser(&User{
|
||||
Username: "testuser",
|
||||
Password: "12345",
|
||||
Email: "",
|
||||
})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrNoUsernamePassword(err))
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetUser(t *testing.T) {
|
||||
// Check if he exists
|
||||
theuser, err := GetUser(createdUser)
|
||||
assert.NoError(t, err)
|
||||
|
@ -75,6 +105,9 @@ func TestCreateUser(t *testing.T) {
|
|||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUserDoesNotExist(err))
|
||||
|
||||
}
|
||||
|
||||
func TestCheckUserCredentials(t *testing.T) {
|
||||
// Check the user credentials with an unverified email
|
||||
_, err = CheckUserCredentials(&Login{"user5", "1234"})
|
||||
assert.Error(t, err)
|
||||
|
@ -96,7 +129,9 @@ func TestCreateUser(t *testing.T) {
|
|||
_, err = CheckUserCredentials(&Login{"dfstestuu", "1234"})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrWrongUsernameOrPassword(err))
|
||||
}
|
||||
|
||||
func TestUpdateUser(t *testing.T) {
|
||||
// Update the user
|
||||
uuser, err := UpdateUser(&User{ID: theuser.ID, Password: "444444"})
|
||||
assert.NoError(t, err)
|
||||
|
@ -117,6 +152,13 @@ func TestCreateUser(t *testing.T) {
|
|||
_, err = CheckUserCredentials(&Login{theuser.Username, newpassword})
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Try updating the password of a nonexistent user (should fail)
|
||||
err = UpdateUserPassword(&User{ID: 9999}, newpassword)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUserDoesNotExist(err))
|
||||
}
|
||||
|
||||
func TestListUsers(t *testing.T) {
|
||||
// Check if the searchterm works
|
||||
all, err := ListUsers("test")
|
||||
assert.NoError(t, err)
|
||||
|
@ -125,11 +167,6 @@ func TestCreateUser(t *testing.T) {
|
|||
all, err = ListUsers("")
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, len(all) > 0)
|
||||
|
||||
// Try updating the password of a nonexistent user (should fail)
|
||||
err = UpdateUserPassword(&User{ID: 9999}, newpassword)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUserDoesNotExist(err))
|
||||
}
|
||||
|
||||
func TestUserPasswordReset(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue