1f1f92408a
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
108 lines
2 KiB
Go
108 lines
2 KiB
Go
package session
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/photoprism/photoprism/internal/entity"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestSession_Create(t *testing.T) {
|
|
s := New(time.Hour, "testdata")
|
|
|
|
data := Data{
|
|
User: entity.Admin,
|
|
}
|
|
|
|
token := s.Create(data)
|
|
t.Logf("token: %s", token)
|
|
assert.Equal(t, 48, len(token))
|
|
}
|
|
|
|
func TestSession_Update(t *testing.T) {
|
|
s := New(time.Hour, "testdata")
|
|
|
|
data := Data{
|
|
User: entity.Admin,
|
|
}
|
|
|
|
randomToken := Token()
|
|
assert.Equal(t, 48, len(randomToken))
|
|
|
|
if result := s.Get(randomToken); result != nil {
|
|
t.Fatalf("session %s should not exist", randomToken)
|
|
}
|
|
|
|
if err := s.Update(randomToken, data); err == nil {
|
|
t.Fatalf("update should fail for unknown token %s", randomToken)
|
|
}
|
|
|
|
token := s.Create(data)
|
|
assert.Equal(t, 48, len(token))
|
|
|
|
cachedData := s.Get(token)
|
|
|
|
if cachedData == nil {
|
|
t.Fatalf("session %s should exist", token)
|
|
}
|
|
|
|
assert.Equal(t, *cachedData, data)
|
|
|
|
newData := Data{
|
|
User: entity.Guest,
|
|
}
|
|
|
|
if err := s.Update(token, newData); err != nil {
|
|
t.Fatalf(err.Error())
|
|
}
|
|
|
|
if cachedData := s.Get(token); cachedData == nil {
|
|
t.Fatalf("session %s should exist", token)
|
|
}
|
|
}
|
|
|
|
func TestSession_Delete(t *testing.T) {
|
|
s := New(time.Hour, "testdata")
|
|
s.Delete("abc")
|
|
}
|
|
|
|
func TestSession_Get(t *testing.T) {
|
|
s := New(time.Hour, "testdata")
|
|
data := Data{
|
|
User: entity.Guest,
|
|
}
|
|
|
|
token := s.Create(data)
|
|
t.Logf("token: %s", token)
|
|
assert.Equal(t, 48, len(token))
|
|
|
|
cachedData := s.Get(token)
|
|
|
|
if cachedData == nil {
|
|
t.Fatal("cachedData should not be nil")
|
|
}
|
|
|
|
assert.Equal(t, data, *cachedData)
|
|
|
|
s.Delete(token)
|
|
|
|
if cachedData := s.Get(token); cachedData != nil {
|
|
t.Fatal("cachedData should be nil")
|
|
}
|
|
}
|
|
|
|
func TestSession_Exists(t *testing.T) {
|
|
s := New(time.Hour, "testdata")
|
|
assert.False(t, s.Exists("xyz"))
|
|
data := Data{
|
|
User: entity.Guest,
|
|
}
|
|
token := s.Create(data)
|
|
t.Logf("token: %s", token)
|
|
assert.Equal(t, 48, len(token))
|
|
assert.True(t, s.Exists(token))
|
|
s.Delete(token)
|
|
assert.False(t, s.Exists(token))
|
|
}
|