mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 21:56:50 -04:00
Add table and model to persist user login sessions.
This commit is contained in:
47
model/user_session_test.go
Normal file
47
model/user_session_test.go
Normal file
@@ -0,0 +1,47 @@
|
||||
// Copyright 2019 Team 254. All Rights Reserved.
|
||||
// Author: pat@patfairbank.com (Patrick Fairbank)
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestGetNonexistentUserSession(t *testing.T) {
|
||||
db := setupTestDb(t)
|
||||
|
||||
session, err := db.GetUserSessionByToken("blorpy")
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, session)
|
||||
}
|
||||
|
||||
func TestUserSessionCrud(t *testing.T) {
|
||||
db := setupTestDb(t)
|
||||
|
||||
session := UserSession{0, "token1", "Bertha", time.Now()}
|
||||
err := db.CreateUserSession(&session)
|
||||
assert.Nil(t, err)
|
||||
session2, err := db.GetUserSessionByToken("token1")
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, session.Token, session2.Token)
|
||||
assert.Equal(t, session.Username, session2.Username)
|
||||
assert.True(t, session.CreatedAt.Equal(session2.CreatedAt))
|
||||
|
||||
db.DeleteUserSession(&session)
|
||||
session2, err = db.GetUserSessionByToken("token1")
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, session2)
|
||||
}
|
||||
|
||||
func TestTruncateUserSessions(t *testing.T) {
|
||||
db := setupTestDb(t)
|
||||
|
||||
session := UserSession{0, "token1", "Bertha", time.Now()}
|
||||
db.CreateUserSession(&session)
|
||||
db.TruncateUserSessions()
|
||||
session2, err := db.GetUserSessionByToken("token1")
|
||||
assert.Nil(t, err)
|
||||
assert.Nil(t, session2)
|
||||
}
|
||||
Reference in New Issue
Block a user