Add PgStore with hashed token sessions, IAM bootstrap, and store factory wiring; remove in-memory token map and allow_dev_switch from login payload.
30 lines
734 B
Go
30 lines
734 B
Go
package auth_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"chat-agent-system/internal/auth"
|
|
)
|
|
|
|
func TestHashTokenAndMemorySessionStore(t *testing.T) {
|
|
store := auth.NewMemorySessionStore()
|
|
ctx := context.Background()
|
|
token := "sample-token-abc"
|
|
hash := auth.HashToken(token)
|
|
|
|
if err := store.CreateSession(ctx, 42, hash, auth.SessionMeta{}); err != nil {
|
|
t.Fatalf("CreateSession: %v", err)
|
|
}
|
|
userID, err := store.ResolveUserID(ctx, hash)
|
|
if err != nil || userID != 42 {
|
|
t.Fatalf("ResolveUserID got (%d, %v)", userID, err)
|
|
}
|
|
if err := store.RevokeByTokenHash(ctx, hash); err != nil {
|
|
t.Fatalf("Revoke: %v", err)
|
|
}
|
|
if _, err := store.ResolveUserID(ctx, hash); err == nil {
|
|
t.Fatal("expected revoked session to fail")
|
|
}
|
|
}
|