credentials_sanitize_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package service
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. func TestSanitizeStoredCredentials_StripsEphemeralSSOSecrets(t *testing.T) {
  7. creds := map[string]any{
  8. "access_token": "at",
  9. "refresh_token": "rt",
  10. "password": "secret",
  11. "sso_token": "sso",
  12. "sso": "cookie-sso",
  13. "sso-rw": "rw",
  14. "clearTextPassword": "plain",
  15. "cookie": "jar",
  16. "base_url": "https://api.x.ai",
  17. }
  18. out := SanitizeStoredCredentials(PlatformGrok, creds)
  19. require.Equal(t, "at", out["access_token"])
  20. require.Equal(t, "rt", out["refresh_token"])
  21. require.Equal(t, "https://api.x.ai", out["base_url"])
  22. require.NotContains(t, out, "password")
  23. require.NotContains(t, out, "sso_token")
  24. require.NotContains(t, out, "sso")
  25. require.NotContains(t, out, "sso-rw")
  26. require.NotContains(t, out, "clearTextPassword")
  27. require.NotContains(t, out, "cookie")
  28. }
  29. func TestSanitizeStoredCredentials_AlwaysStripsCookie(t *testing.T) {
  30. // Bulk paths may pass empty platform; cookie must never persist next to tokens.
  31. for _, platform := range []string{PlatformOpenAI, PlatformGrok, ""} {
  32. creds := map[string]any{
  33. "cookie": "session",
  34. "password": "x",
  35. "api_key": "k",
  36. }
  37. out := SanitizeStoredCredentials(platform, creds)
  38. require.Equal(t, "k", out["api_key"], platform)
  39. require.NotContains(t, out, "password", platform)
  40. require.NotContains(t, out, "cookie", platform)
  41. }
  42. }
  43. func TestSanitizeStoredCredentials_NilSafe(t *testing.T) {
  44. require.Nil(t, SanitizeStoredCredentials(PlatformGrok, nil))
  45. }