pkg/internal/testutils/testutils.go (32 lines of code) (raw):

package testutils import ( "net/url" "strings" ) const ( ClientID = "AZURE_CLIENT_ID" ClientSecret = "AAD_SERVICE_PRINCIPAL_CLIENT_SECRET" ClientCert = "AZURE_CLIENT_CER" ClientCertPass = "AZURE_CLIENT_CERTIFICATE_PASSWORD" ResourceID = "AZURE_RESOURCE_ID" TenantID = "AZURE_TENANT_ID" BadSecret = "Bad_Secret" Username = "USERNAME" Password = "PASSWORD" ) // ErrorContains takes an input error and a desired substring, checks if the string is present // in the error message, and returns the boolean result func ErrorContains(out error, want string) bool { substring := strings.TrimSpace(want) if out == nil { return substring == "" } if substring == "" { return false } return strings.Contains(out.Error(), substring) } // ReplaceSecretValuesIncludingURLEscaped takes an input string, finds any instances of the // input secret in the string (including in URL-escaped format), and replaces all instances // with the given redaction token // This is used for VCR tests as they sometimes include a URL-escaped version of the secret // in the request body func ReplaceSecretValuesIncludingURLEscaped(body, secret, redactionToken string) string { body = strings.ReplaceAll(body, secret, redactionToken) // get the URL-escaped version of the secret which replaces special characters with // the URL-safe "%AB" format escapedSecret := url.QueryEscape(secret) body = strings.ReplaceAll(body, escapedSecret, redactionToken) return body }