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

  1. package models_test
  2. import (
  3. "context"
  4. "git.aiterp.net/lucifer/lucifer/models"
  5. "github.com/stretchr/testify/assert"
  6. "testing"
  7. )
  8. func TestUser_SetPassword_TooShort(t *testing.T) {
  9. user := &models.User{}
  10. err := user.SetPassword("short")
  11. assert.NotNil(t, err)
  12. }
  13. func TestUser_SetPassword_Valid(t *testing.T) {
  14. user := &models.User{}
  15. err := user.SetPassword("longer")
  16. assert.Nil(t, err)
  17. assert.NotEqual(t, "", user.PassHash)
  18. }
  19. func TestUser_CheckPassword_Wrong(t *testing.T) {
  20. user := &models.User{}
  21. _ = user.SetPassword("longer")
  22. err := user.CheckPassword("wrong attempt")
  23. assert.NotNil(t, err)
  24. }
  25. func TestUser_CheckPassword_Correct(t *testing.T) {
  26. user := &models.User{}
  27. _ = user.SetPassword("correct")
  28. err := user.CheckPassword("correct")
  29. assert.Nil(t, err)
  30. }
  31. func TestUserFromContext(t *testing.T) {
  32. nilUser := models.UserFromContext(context.Background())
  33. assert.Nil(t, nilUser)
  34. user := &models.User{ID: 1001, Name: "Freddie"}
  35. ctx := user.InContext(context.Background())
  36. assert.Equal(t, user, models.UserFromContext(ctx))
  37. }