Added unit tests for user

This commit is contained in:
konrad 2018-01-16 16:24:21 +01:00 committed by kolaente
parent 3c5af74141
commit 1b6a304ae8
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 48 additions and 0 deletions

48
models/user_test.go Normal file
View File

@ -0,0 +1,48 @@
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",
}
// 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)
createdUser, err = CreateUser(User{Name: "blub"})
assert.Error(t, 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)
}