Initial commit: Custom Start Page application with authentication and DynamoDB storage
This commit is contained in:
112
internal/auth/state_store_test.go
Normal file
112
internal/auth/state_store_test.go
Normal file
@@ -0,0 +1,112 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestMemoryStateStore(t *testing.T) {
|
||||
store := NewMemoryStateStore()
|
||||
|
||||
t.Run("set and validate state", func(t *testing.T) {
|
||||
state := "test-state-123"
|
||||
expiry := time.Now().Add(10 * time.Minute)
|
||||
|
||||
err := store.Set(state, expiry)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to set state: %v", err)
|
||||
}
|
||||
|
||||
valid, err := store.Validate(state)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to validate state: %v", err)
|
||||
}
|
||||
|
||||
if !valid {
|
||||
t.Error("Expected state to be valid")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("validate non-existent state", func(t *testing.T) {
|
||||
valid, err := store.Validate("non-existent")
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
if valid {
|
||||
t.Error("Expected non-existent state to be invalid")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("validate expired state", func(t *testing.T) {
|
||||
state := "expired-state"
|
||||
expiry := time.Now().Add(-1 * time.Minute) // Already expired
|
||||
|
||||
err := store.Set(state, expiry)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to set state: %v", err)
|
||||
}
|
||||
|
||||
valid, err := store.Validate(state)
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
if valid {
|
||||
t.Error("Expected expired state to be invalid")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("delete state", func(t *testing.T) {
|
||||
state := "delete-test"
|
||||
expiry := time.Now().Add(10 * time.Minute)
|
||||
|
||||
err := store.Set(state, expiry)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to set state: %v", err)
|
||||
}
|
||||
|
||||
err = store.Delete(state)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to delete state: %v", err)
|
||||
}
|
||||
|
||||
valid, err := store.Validate(state)
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
if valid {
|
||||
t.Error("Expected deleted state to be invalid")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("multiple states", func(t *testing.T) {
|
||||
state1 := "state-1"
|
||||
state2 := "state-2"
|
||||
expiry := time.Now().Add(10 * time.Minute)
|
||||
|
||||
store.Set(state1, expiry)
|
||||
store.Set(state2, expiry)
|
||||
|
||||
valid1, _ := store.Validate(state1)
|
||||
valid2, _ := store.Validate(state2)
|
||||
|
||||
if !valid1 || !valid2 {
|
||||
t.Error("Expected both states to be valid")
|
||||
}
|
||||
|
||||
store.Delete(state1)
|
||||
|
||||
valid1, _ = store.Validate(state1)
|
||||
valid2, _ = store.Validate(state2)
|
||||
|
||||
if valid1 {
|
||||
t.Error("Expected state1 to be invalid after deletion")
|
||||
}
|
||||
|
||||
if !valid2 {
|
||||
t.Error("Expected state2 to still be valid")
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user