| package util |
|
|
| import "testing" |
|
|
| func TestResolveThinkingEnabledPriority(t *testing.T) { |
| req := map[string]any{ |
| "thinking": map[string]any{"type": "disabled"}, |
| "extra_body": map[string]any{ |
| "thinking": map[string]any{"type": "enabled"}, |
| }, |
| "reasoning_effort": "high", |
| } |
| if got := ResolveThinkingEnabled(req, true); got { |
| t.Fatalf("expected top-level thinking to win, got enabled=%v", got) |
| } |
| } |
|
|
| func TestResolveThinkingEnabledUsesExtraBodyFallback(t *testing.T) { |
| req := map[string]any{ |
| "extra_body": map[string]any{ |
| "thinking": map[string]any{"type": "disabled"}, |
| }, |
| } |
| if got := ResolveThinkingEnabled(req, true); got { |
| t.Fatalf("expected extra_body thinking to disable, got enabled=%v", got) |
| } |
| } |
|
|
| func TestResolveThinkingEnabledMapsReasoningEffortToEnabled(t *testing.T) { |
| for _, effort := range []string{"minimal", "low", "medium", "high", "xhigh"} { |
| if got := ResolveThinkingEnabled(map[string]any{"reasoning_effort": effort}, false); !got { |
| t.Fatalf("expected reasoning_effort=%s to enable thinking", effort) |
| } |
| } |
| } |
|
|
| func TestResolveThinkingEnabledMapsReasoningObject(t *testing.T) { |
| req := map[string]any{"reasoning": map[string]any{"effort": "none"}} |
| if got := ResolveThinkingEnabled(req, true); got { |
| t.Fatalf("expected reasoning.effort=none to disable thinking") |
| } |
| req = map[string]any{"reasoning": map[string]any{"effort": "medium"}} |
| if got := ResolveThinkingEnabled(req, false); !got { |
| t.Fatalf("expected reasoning.effort=medium to enable thinking") |
| } |
| } |
|
|
| func TestResolveThinkingEnabledDefaultsWhenUnset(t *testing.T) { |
| if !ResolveThinkingEnabled(nil, true) { |
| t.Fatal("expected default thinking=true when unset") |
| } |
| if ResolveThinkingEnabled(nil, false) { |
| t.Fatal("expected default thinking=false when unset") |
| } |
| } |
|
|