From c10a34604f7a5cb945c5bb1e407c65bf4723910d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E9=BE=99=200668001470?=
Date: Mon, 16 Mar 2026 08:48:13 +0800
Subject: [PATCH] test(agent): move transient retry regression out of merge
hotpath
---
pkg/agent/loop_test.go | 92 +++++++++++++++++++++---------------------
1 file changed, 46 insertions(+), 46 deletions(-)
diff --git a/pkg/agent/loop_test.go b/pkg/agent/loop_test.go
index f23f4b22f..410914453 100644
--- a/pkg/agent/loop_test.go
+++ b/pkg/agent/loop_test.go
@@ -845,52 +845,6 @@ func TestAgentLoop_ContextExhaustionRetry(t *testing.T) {
}
}
-func TestAgentLoop_TransientProviderRetry(t *testing.T) {
- tmpDir, err := os.MkdirTemp("", "agent-test-*")
- if err != nil {
- t.Fatalf("Failed to create temp dir: %v", err)
- }
- defer os.RemoveAll(tmpDir)
-
- cfg := &config.Config{
- Agents: config.AgentsConfig{
- Defaults: config.AgentDefaults{
- Workspace: tmpDir,
- Model: "test-model",
- MaxTokens: 4096,
- MaxToolIterations: 10,
- },
- },
- }
-
- msgBus := bus.NewMessageBus()
- provider := &failFirstMockProvider{
- failures: 1,
- failError: fmt.Errorf("API error: status: 500 temporary upstream failure"),
- successResp: "Recovered after transient provider failure",
- }
-
- al := NewAgentLoop(cfg, msgBus, provider)
-
- response, err := al.ProcessDirectWithChannel(
- context.Background(),
- "retry this request",
- "test-session-transient",
- "cli",
- "direct",
- )
- if err != nil {
- t.Fatalf("Expected success after transient retry, got error: %v", err)
- }
-
- if response != "Recovered after transient provider failure" {
- t.Fatalf("response = %q, want %q", response, "Recovered after transient provider failure")
- }
- if provider.currentCall != 2 {
- t.Fatalf("expected 2 calls (1 fail + 1 success), got %d", provider.currentCall)
- }
-}
-
// TestProcessDirectWithChannel_TriggersMCPInitialization verifies that
// ProcessDirectWithChannel triggers MCP initialization when MCP is enabled.
// Note: Manager is only initialized when at least one MCP server is configured
@@ -1189,6 +1143,52 @@ func TestHandleReasoning(t *testing.T) {
})
}
+func TestAgentLoop_TransientProviderRetry(t *testing.T) {
+ tmpDir, err := os.MkdirTemp("", "agent-test-*")
+ if err != nil {
+ t.Fatalf("Failed to create temp dir: %v", err)
+ }
+ defer os.RemoveAll(tmpDir)
+
+ cfg := &config.Config{
+ Agents: config.AgentsConfig{
+ Defaults: config.AgentDefaults{
+ Workspace: tmpDir,
+ Model: "test-model",
+ MaxTokens: 4096,
+ MaxToolIterations: 10,
+ },
+ },
+ }
+
+ msgBus := bus.NewMessageBus()
+ provider := &failFirstMockProvider{
+ failures: 1,
+ failError: fmt.Errorf("API error: status: 500 temporary upstream failure"),
+ successResp: "Recovered after transient provider failure",
+ }
+
+ al := NewAgentLoop(cfg, msgBus, provider)
+
+ response, err := al.ProcessDirectWithChannel(
+ context.Background(),
+ "retry this request",
+ "test-session-transient",
+ "cli",
+ "direct",
+ )
+ if err != nil {
+ t.Fatalf("Expected success after transient retry, got error: %v", err)
+ }
+
+ if response != "Recovered after transient provider failure" {
+ t.Fatalf("response = %q, want %q", response, "Recovered after transient provider failure")
+ }
+ if provider.currentCall != 2 {
+ t.Fatalf("expected 2 calls (1 fail + 1 success), got %d", provider.currentCall)
+ }
+}
+
func TestResolveMediaRefs_ResolvesToBase64(t *testing.T) {
store := media.NewFileMediaStore()
dir := t.TempDir()