superagent请求问题修复
This commit is contained in:
1 parent
ee9d2d7cf1
commit
7243319bbb
19 files changed
+388
-74
No files matched your search
@@ -18,6 +18,7 @@ const (
|
||||
SuperAgentEnabledEnv = "FIRE_SAFETY_SUPERAGENT_ENABLED"
|
||||
SuperAgentBaseURLEnv = "FIRE_SAFETY_SUPERAGENT_BASE_URL"
|
||||
SuperAgentOpenAPIKeyEnv = "FIRE_SAFETY_SUPERAGENT_OPEN_API_KEY"
|
||||
SuperAgentIncludeTraceEnv = "FIRE_SAFETY_SUPERAGENT_INCLUDE_TRACE"
|
||||
SuperAgentConnectTimeoutEnv = "FIRE_SAFETY_SUPERAGENT_CONNECT_TIMEOUT"
|
||||
SuperAgentRecoveryMaxAttemptsEnv = "FIRE_SAFETY_SUPERAGENT_RECOVERY_MAX_ATTEMPTS"
|
||||
SuperAgentRecoveryInitialBackoffEnv = "FIRE_SAFETY_SUPERAGENT_RECOVERY_INITIAL_BACKOFF"
|
||||
@@ -107,6 +108,7 @@ type SuperAgentConfig struct {
|
||||
Enabled bool
|
||||
BaseURL string
|
||||
OpenAPIKey string
|
||||
IncludeTrace bool
|
||||
ConnectTimeout time.Duration
|
||||
RecoveryMaxAttempts int
|
||||
RecoveryInitialBackoff time.Duration
|
||||
@@ -163,6 +165,10 @@ func Load() (Config, error) {
|
||||
if err != nil {
|
||||
return Config{}, err
|
||||
}
|
||||
includeTrace, err := parseBool(SuperAgentIncludeTraceEnv, false)
|
||||
if err != nil {
|
||||
return Config{}, err
|
||||
}
|
||||
connectTimeout, err := parseDuration(SuperAgentConnectTimeoutEnv, defaultSuperAgentConnectTimeout)
|
||||
if err != nil {
|
||||
return Config{}, err
|
||||
@@ -188,6 +194,7 @@ func Load() (Config, error) {
|
||||
Enabled: enabled,
|
||||
BaseURL: strings.TrimRight(strings.TrimSpace(os.Getenv(SuperAgentBaseURLEnv)), "/"),
|
||||
OpenAPIKey: strings.TrimSpace(os.Getenv(SuperAgentOpenAPIKeyEnv)),
|
||||
IncludeTrace: includeTrace,
|
||||
ConnectTimeout: connectTimeout,
|
||||
RecoveryMaxAttempts: recoveryMaxAttempts,
|
||||
RecoveryInitialBackoff: recoveryInitialBackoff,
|
||||
|
||||
@@ -20,6 +20,9 @@ func TestLoadDefaults(t *testing.T) {
|
||||
if cfg.SuperAgent.Enabled {
|
||||
t.Fatal("SuperAgent.Enabled = true, want false")
|
||||
}
|
||||
if cfg.SuperAgent.IncludeTrace {
|
||||
t.Fatal("SuperAgent.IncludeTrace = true, want false")
|
||||
}
|
||||
if cfg.SuperAgent.ConnectTimeout != 15*time.Second {
|
||||
t.Fatalf("ConnectTimeout = %v, want 15s", cfg.SuperAgent.ConnectTimeout)
|
||||
}
|
||||
@@ -169,6 +172,7 @@ func TestLoadConfiguredValues(t *testing.T) {
|
||||
t.Setenv(SuperAgentEnabledEnv, "true")
|
||||
t.Setenv(SuperAgentBaseURLEnv, " https://superagent.example.test/root/ ")
|
||||
t.Setenv(SuperAgentOpenAPIKeyEnv, " test-open-api-key ")
|
||||
t.Setenv(SuperAgentIncludeTraceEnv, "true")
|
||||
t.Setenv(SuperAgentConnectTimeoutEnv, "3s")
|
||||
t.Setenv(SuperAgentRecoveryMaxAttemptsEnv, "2")
|
||||
t.Setenv(SuperAgentRecoveryInitialBackoffEnv, "20ms")
|
||||
@@ -189,6 +193,9 @@ func TestLoadConfiguredValues(t *testing.T) {
|
||||
if cfg.SuperAgent.OpenAPIKey != "test-open-api-key" {
|
||||
t.Fatal("OpenAPIKey was not loaded")
|
||||
}
|
||||
if !cfg.SuperAgent.IncludeTrace {
|
||||
t.Fatal("IncludeTrace = false, want true")
|
||||
}
|
||||
if cfg.SuperAgent.ConnectTimeout != 3*time.Second || cfg.SuperAgent.RecoveryMaxAttempts != 2 || cfg.SuperAgent.RecoveryInitialBackoff != 20*time.Millisecond {
|
||||
t.Fatalf("unexpected recovery config: %#v", cfg.SuperAgent)
|
||||
}
|
||||
@@ -204,6 +211,7 @@ func TestLoadRejectsInvalidValues(t *testing.T) {
|
||||
value string
|
||||
}{
|
||||
{name: "boolean", key: SuperAgentEnabledEnv, value: "sometimes"},
|
||||
{name: "include trace boolean", key: SuperAgentIncludeTraceEnv, value: "sometimes"},
|
||||
{name: "connect timeout syntax", key: SuperAgentConnectTimeoutEnv, value: "soon"},
|
||||
{name: "connect timeout non-positive", key: SuperAgentConnectTimeoutEnv, value: "0s"},
|
||||
{name: "recovery attempts syntax", key: SuperAgentRecoveryMaxAttemptsEnv, value: "many"},
|
||||
@@ -574,6 +582,7 @@ func clearEnvironment(t *testing.T) {
|
||||
SuperAgentEnabledEnv,
|
||||
SuperAgentBaseURLEnv,
|
||||
SuperAgentOpenAPIKeyEnv,
|
||||
SuperAgentIncludeTraceEnv,
|
||||
SuperAgentConnectTimeoutEnv,
|
||||
SuperAgentRecoveryMaxAttemptsEnv,
|
||||
SuperAgentRecoveryInitialBackoffEnv,
|
||||
|
||||
Reference in new issue
Block a user