package dispatcher

import (
	"testing"

	"github.com/stretchr/testify/require"

	"github.com/tidbcloud/AgentTeam/desktop/internal/agent"
	"github.com/tidbcloud/AgentTeam/desktop/internal/types"
)

func TestApplyAgentTeamStartConfigOverridesInlineLLM(t *testing.T) {
	t.Parallel()

	base := agent.Config{
		ID:              "agt_1",
		Name:            "Local Agent",
		Runtime:         "codex",
		PermissionMode:  "full_access",
		Model:           "gpt-local",
		ReasoningEffort: "medium",
		LLMMode:         string(agent.LLMModeInline),
		BaseURL:         "http://127.0.0.1:4000",
		APIKey:          "sk-local",
		WireAPI:         "responses",
	}

	next := applyAgentTeamStartConfig(base, types.AgentStartConfig{
		Name:            "Server Agent",
		PermissionMode:  "agent_workspace_write",
		Model:           "gpt-server",
		ReasoningEffort: "high",
		LLMMode:         "inline",
		BaseURL:         "https://llm.example.com/v1",
		APIKey:          "sk-server",
		WireAPI:         "responses",
	})

	require.Equal(t, "Server Agent", next.Name)
	require.Equal(t, "full_access", next.PermissionMode)
	require.Equal(t, "gpt-server", next.Model)
	require.Equal(t, "high", next.ReasoningEffort)
	require.Equal(t, "https://llm.example.com/v1", next.BaseURL)
	require.Equal(t, "sk-server", next.APIKey)
	require.Equal(t, "responses", next.WireAPI)
}
