diff --git a/pkg/tui/agent_switch_test.go b/pkg/tui/agent_switch_test.go new file mode 100644 index 000000000..f117a75fb --- /dev/null +++ b/pkg/tui/agent_switch_test.go @@ -0,0 +1,20 @@ +package tui + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/docker/docker-agent/pkg/session" + "github.com/docker/docker-agent/pkg/tui/service" +) + +func TestHandleSwitchAgentNoOpForCurrentAgent(t *testing.T) { + m, _ := newTestModel() + m.sessionState = service.NewSessionState(session.New()) + m.sessionState.SetCurrentAgentName("agent1") + + _, cmd := m.handleSwitchAgent("agent1") + + require.Nil(t, cmd) +} diff --git a/pkg/tui/handlers.go b/pkg/tui/handlers.go index b3905f5bb..1cea67095 100644 --- a/pkg/tui/handlers.go +++ b/pkg/tui/handlers.go @@ -314,6 +314,10 @@ func copyToClipboard(text, successMsg string) tea.Cmd { // --- Agent management --- func (m *appModel) handleSwitchAgent(agentName string) (tea.Model, tea.Cmd) { + if agentName == m.sessionState.CurrentAgentName() { + return m, nil + } + if err := m.application.SwitchAgent(agentName); err != nil { return m, notification.ErrorCmd(fmt.Sprintf("Failed to switch to agent '%s': %v", agentName, err)) }