The main server, and probably only repository in this org.
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

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))
}