package auth import ( "encoding/base64" "errors" "strings" "testing" ) func TestSessionKeyFromToken(t *testing.T) { token := base64.RawURLEncoding.EncodeToString(make([]byte, 32)) key, err := sessionKeyFromToken("olons_server:session:token:%s", token) if err != nil { t.Fatal(err) } if !strings.HasPrefix(key, "olons_server:session:token:") || len(key) != len("olons_server:session:token:")+64 { t.Fatalf("unexpected session key %q", key) } } func TestSessionKeyFromTokenRejectsMalformedToken(t *testing.T) { for _, token := range []string{"", "invalid", base64.RawURLEncoding.EncodeToString(make([]byte, 31))} { if _, err := sessionKeyFromToken("olons_server:session:token:%s", token); !errors.Is(err, ErrAuthRequired) { t.Errorf("token %q: error = %v, want %v", token, err, ErrAuthRequired) } } }