fix: session storage
This commit is contained in:
115
server/memorystore/providers/provider_tests.go
Normal file
115
server/memorystore/providers/provider_tests.go
Normal file
@@ -0,0 +1,115 @@
|
||||
package providers
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// ProviderTests runs all provider tests
|
||||
func ProviderTests(t *testing.T, p Provider) {
|
||||
|
||||
err := p.SetUserSession("auth_provider:123", "session_token_key", "test_hash123", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
err = p.SetUserSession("auth_provider:123", "access_token_key", "test_jwt123", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
// Same user multiple session
|
||||
err = p.SetUserSession("auth_provider:123", "session_token_key1", "test_hash1123", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
err = p.SetUserSession("auth_provider:123", "access_token_key1", "test_jwt1123", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
// Different user session
|
||||
err = p.SetUserSession("auth_provider:124", "session_token_key", "test_hash124", time.Now().Add(5*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
err = p.SetUserSession("auth_provider:124", "access_token_key", "test_jwt124", time.Now().Add(5*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
// Different provider session
|
||||
err = p.SetUserSession("auth_provider1:124", "session_token_key", "test_hash124", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
err = p.SetUserSession("auth_provider1:124", "access_token_key", "test_jwt124", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
// Different provider session
|
||||
err = p.SetUserSession("auth_provider1:123", "session_token_key", "test_hash1123", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
err = p.SetUserSession("auth_provider1:123", "access_token_key", "test_jwt1123", time.Now().Add(60*time.Second).Unix())
|
||||
assert.NoError(t, err)
|
||||
// Get session
|
||||
key, err := p.GetUserSession("auth_provider:123", "session_token_key")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "test_hash123", key)
|
||||
key, err = p.GetUserSession("auth_provider:123", "access_token_key")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "test_jwt123", key)
|
||||
key, err = p.GetUserSession("auth_provider:124", "session_token_key")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "test_hash124", key)
|
||||
key, err = p.GetUserSession("auth_provider:124", "access_token_key")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "test_jwt124", key)
|
||||
// Expire some tokens and make sure they are empty
|
||||
time.Sleep(5 * time.Second)
|
||||
key, err = p.GetUserSession("auth_provider:124", "session_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:124", "access_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
// Delete user session
|
||||
err = p.DeleteUserSession("auth_provider:123", "key")
|
||||
assert.NoError(t, err)
|
||||
err = p.DeleteUserSession("auth_provider:123", "key")
|
||||
assert.NoError(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:123", "key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:123", "access_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
// Delete all user session
|
||||
err = p.DeleteAllUserSessions("123")
|
||||
assert.NoError(t, err)
|
||||
err = p.DeleteAllUserSessions("123")
|
||||
assert.NoError(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:123", "session_token_key1")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:123", "access_token_key1")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider1:123", "session_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider1:123", "access_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
// Delete namespace
|
||||
err = p.DeleteSessionForNamespace("auth_provider")
|
||||
assert.NoError(t, err)
|
||||
err = p.DeleteSessionForNamespace("auth_provider1")
|
||||
assert.NoError(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:123", "session_token_key1")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:123", "access_token_key1")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider1:123", "session_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider1:123", "access_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:124", "session_token_key1")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider:124", "access_token_key1")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider1:124", "session_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
key, err = p.GetUserSession("auth_provider1:124", "access_token_key")
|
||||
assert.Empty(t, key)
|
||||
assert.Error(t, err)
|
||||
}
|
Reference in New Issue
Block a user