package run

import (
	"net/http"
	"testing"

	"github.com/stretchr/testify/require"
	"github.com/tidbcloud/AgentTeam/internal/store/storeerr"
	"github.com/tidbcloud/AgentTeam/internal/workflow/runmanage"
)

func TestClassifyRunErrorsPreservesStableDomainCodeAndDetails(t *testing.T) {
	err := runmanage.RequestError{
		Kind: storeerr.ErrConflict, Code: runmanage.ErrorCodeTerminalConflict,
		Message: "completed Workflow Run cannot be canceled",
		Details: runmanage.TerminalConflictDetails{Status: "succeeded"},
	}
	response, ok := classifyError(err)
	require.True(t, ok)
	require.Equal(t, http.StatusConflict, response.Status)
	require.Equal(t, "run_terminal_conflict", response.Code)
	require.Equal(t, runmanage.TerminalConflictDetails{Status: "succeeded"}, response.Details)
}
