You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.0 KiB
55 lines
1.0 KiB
package models_test
|
|
|
|
import (
|
|
"context"
|
|
"git.aiterp.net/lucifer/lucifer/models"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestUser_SetPassword_TooShort(t *testing.T) {
|
|
user := &models.User{}
|
|
|
|
err := user.SetPassword("short")
|
|
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestUser_SetPassword_Valid(t *testing.T) {
|
|
user := &models.User{}
|
|
|
|
err := user.SetPassword("longer")
|
|
|
|
assert.Nil(t, err)
|
|
assert.NotEqual(t, "", user.PassHash)
|
|
}
|
|
|
|
func TestUser_CheckPassword_Wrong(t *testing.T) {
|
|
user := &models.User{}
|
|
_ = user.SetPassword("longer")
|
|
|
|
err := user.CheckPassword("wrong attempt")
|
|
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestUser_CheckPassword_Correct(t *testing.T) {
|
|
user := &models.User{}
|
|
_ = user.SetPassword("correct")
|
|
|
|
err := user.CheckPassword("correct")
|
|
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestUserFromContext(t *testing.T) {
|
|
nilUser := models.UserFromContext(context.Background())
|
|
|
|
assert.Nil(t, nilUser)
|
|
|
|
user := &models.User{ID: 1001, Name: "Freddie"}
|
|
|
|
ctx := user.InContext(context.Background())
|
|
|
|
assert.Equal(t, user, models.UserFromContext(ctx))
|
|
}
|