Library/models/user_test.go

66 lines
1.6 KiB
Go

package models
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestCreateUser(t *testing.T) {
// Create test database
assert.NoError(t, PrepareTestDatabase())
// Our dummy user for testing
dummyuser := User{
Name: "testu",
Username: "testuu",
Password: "1234",
Email: "noone@example.com",
IsAdmin: true,
}
// Delete every preexisting user to have a fresh start
/* allusers, err := ListUsers("")
for _, user := range allusers {
// Delete it
assert.Equal(t, dummyuser.Name, user.Name)
assert.Equal(t, dummyuser.Username, user.Username)
assert.Equal(t, dummyuser.Email, user.Email)
assert.Equal(t, dummyuser.IsAdmin, user.IsAdmin)
}*/
// Create a new user
createdUser, err := CreateUser(dummyuser)
assert.NoError(t, err)
// Check if it fails to create the same user again
createdUser, err = CreateUser(dummyuser)
assert.Error(t, err)
// Check if it fails to create a user with just the same username
createdUser, err = CreateUser(User{Username: "testuu"})
assert.Error(t, err)
// Check if it fails to create a user without password and username
createdUser, err = CreateUser(User{})
assert.Error(t, err)
assert.True(t, IsErrNoUsernamePassword(err))
createdUser, err = CreateUser(User{Name: "blub"})
assert.Error(t, err)
assert.True(t, IsErrNoUsernamePassword(err))
// Check if he exists
_, exists, err := GetUser(createdUser)
assert.NoError(t, err)
assert.True(t, exists)
// Check the user credentials
user, err := CheckUserCredentials(&UserLogin{"testuu", "1234"})
assert.NoError(t, err)
assert.Equal(t, dummyuser.Name, user.Name)
// List one user
// Delete it
}