package clients

import (
	"testing"

	"github.com/easyai/easyai-ai-gateway/apps/api/internal/store"
)

func TestCurrentOpenAIReasoningEffortMaxProviderMapping(t *testing.T) {
	tests := []struct {
		name      string
		candidate store.RuntimeModelCandidate
		expected  string
	}{
		{name: "generic", candidate: store.RuntimeModelCandidate{Provider: "openai"}, expected: "max"},
		{name: "deepseek", candidate: store.RuntimeModelCandidate{Provider: "deepseek-openai"}, expected: "max"},
		{name: "zhipu", candidate: store.RuntimeModelCandidate{Provider: "zhipu-openai", ProviderModelName: "glm-5.2"}, expected: "xhigh"},
		{name: "volces", candidate: store.RuntimeModelCandidate{Provider: "volces-openai", ProviderModelName: "doubao-seed-2-0-pro-260215"}, expected: "high"},
	}
	for _, test := range tests {
		t.Run(test.name, func(t *testing.T) {
			body := map[string]any{"model": test.candidate.ProviderModelName, "reasoning_effort": "max"}
			applyOpenAIChatReasoningParams(body, test.candidate)
			if body["reasoning_effort"] != test.expected {
				t.Fatalf("expected reasoning_effort %q, got %#v", test.expected, body["reasoning_effort"])
			}
		})
	}
}
