Added unit tests for user
This commit is contained in:
parent
3c5af74141
commit
1b6a304ae8
|
@ -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)
|
||||||
|
}
|
Loading…
Reference in New Issue