f5a8c5a45d
Signed-off-by: Michael Mayer <michael@photoprism.app>
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package entity
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/photoprism/photoprism/pkg/rnd"
|
|
)
|
|
|
|
func TestNewSession(t *testing.T) {
|
|
t.Run("NoSessionData", func(t *testing.T) {
|
|
m := NewSession(time.Hour)
|
|
|
|
assert.True(t, rnd.IsSessionID(m.ID))
|
|
assert.False(t, m.CreatedAt.IsZero())
|
|
assert.False(t, m.UpdatedAt.IsZero())
|
|
assert.False(t, m.ExpiresAt.IsZero())
|
|
assert.NotEmpty(t, m.ID)
|
|
assert.NotNil(t, m.Data())
|
|
assert.Equal(t, 0, len(m.Data().Tokens))
|
|
})
|
|
t.Run("EmptySessionData", func(t *testing.T) {
|
|
m := NewSession(time.Hour)
|
|
m.SetData(NewSessionData())
|
|
|
|
assert.True(t, rnd.IsSessionID(m.ID))
|
|
assert.False(t, m.CreatedAt.IsZero())
|
|
assert.False(t, m.UpdatedAt.IsZero())
|
|
assert.False(t, m.ExpiresAt.IsZero())
|
|
assert.NotEmpty(t, m.ID)
|
|
assert.NotNil(t, m.Data())
|
|
assert.Equal(t, 0, len(m.Data().Tokens))
|
|
})
|
|
t.Run("WithSessionData", func(t *testing.T) {
|
|
data := NewSessionData()
|
|
data.Tokens = []string{"foo", "bar"}
|
|
m := NewSession(time.Hour)
|
|
m.SetData(data)
|
|
|
|
assert.True(t, rnd.IsSessionID(m.ID))
|
|
assert.False(t, m.CreatedAt.IsZero())
|
|
assert.False(t, m.UpdatedAt.IsZero())
|
|
assert.False(t, m.ExpiresAt.IsZero())
|
|
assert.NotEmpty(t, m.ID)
|
|
assert.NotNil(t, m.Data())
|
|
assert.Len(t, m.Data().Tokens, 2)
|
|
assert.Equal(t, "foo", m.Data().Tokens[0])
|
|
assert.Equal(t, "bar", m.Data().Tokens[1])
|
|
|
|
// t.Logf("Session: %#v", m)
|
|
})
|
|
}
|
|
|
|
func TestSession_SetData(t *testing.T) {
|
|
t.Run("Nil", func(t *testing.T) {
|
|
m := NewSession(time.Hour)
|
|
|
|
assert.NotNil(t, m)
|
|
|
|
sess := m.SetData(nil)
|
|
|
|
assert.NotNil(t, sess)
|
|
assert.NotEmpty(t, sess.ID)
|
|
assert.Equal(t, sess.ID, m.ID)
|
|
})
|
|
}
|