diff --git a/models/user_test.go b/models/user_test.go new file mode 100644 index 0000000..12f928a --- /dev/null +++ b/models/user_test.go @@ -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) +}