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.

72 lines
1.4 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. "time"
  8. )
  9. func TestSession_GenerateID_Works(t *testing.T) {
  10. session := &models.Session{}
  11. err := session.GenerateID()
  12. assert.Nil(t, err)
  13. }
  14. func TestSession_Cookie_IsCorrect(t *testing.T) {
  15. sessID := "testId"
  16. expiry := time.Now().AddDate(0, 0, 2)
  17. session := &models.Session{
  18. ID: sessID,
  19. UserID: 0,
  20. Expires: expiry,
  21. }
  22. cookie := session.Cookie()
  23. assert.Equal(t, sessID, cookie.Value)
  24. assert.Equal(t, expiry, cookie.Expires)
  25. }
  26. func TestSession_Expired_BeforeExpiry(t *testing.T) {
  27. session := &models.Session{
  28. ID: "12345",
  29. UserID: 0,
  30. Expires: time.Now().AddDate(0, 0, 1),
  31. }
  32. assert.False(t, session.Expired())
  33. }
  34. func TestSession_Expired_AfterExpiry(t *testing.T) {
  35. session := &models.Session{
  36. ID: "12345",
  37. UserID: 0,
  38. Expires: time.Now().AddDate(0, 0, -1),
  39. }
  40. assert.True(t, session.Expired())
  41. }
  42. func TestSessionFromContext_InContext(t *testing.T) {
  43. session := &models.Session{
  44. ID: "12345",
  45. UserID: 0,
  46. Expires: time.Now().AddDate(0, 0, 1),
  47. }
  48. ctx := session.InContext(context.Background())
  49. session2 := models.SessionFromContext(ctx)
  50. assert.Equal(t, session2, session)
  51. }
  52. func TestSessionFromContext_Empty(t *testing.T) {
  53. session := models.SessionFromContext(context.Background())
  54. assert.Nil(t, session)
  55. }