File size: 1,778 Bytes
8d3471e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 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")
}
}
|