35 lines
958 B
Go
35 lines
958 B
Go
//go:build integration
|
|
|
|
package store
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/shcizo/package-updater/internal/master/model"
|
|
)
|
|
|
|
func TestSessions(t *testing.T) {
|
|
s := openTestStore(t)
|
|
ctx := context.Background()
|
|
now := time.Date(2026, 10, 12, 12, 0, 0, 0, time.UTC)
|
|
sess := model.Session{ID: "s1", Subject: "sub", Name: "Samuel", Email: "s@example.com", CSRFToken: "c1", ExpiresAt: now.Add(time.Hour)}
|
|
|
|
require.NoError(t, s.CreateSession(ctx, sess))
|
|
got, err := s.GetSession(ctx, "s1", now)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "Samuel", got.Name)
|
|
assert.Equal(t, "c1", got.CSRFToken)
|
|
|
|
_, err = s.GetSession(ctx, "s1", now.Add(2*time.Hour))
|
|
assert.ErrorIs(t, err, model.ErrNotFound, "expired sessions are not returned")
|
|
|
|
require.NoError(t, s.DeleteSession(ctx, "s1"))
|
|
_, err = s.GetSession(ctx, "s1", now)
|
|
assert.ErrorIs(t, err, model.ErrNotFound)
|
|
}
|