package chat
import (
"encoding/json"
"testing"
)
func TestStripThinking(t *testing.T) {
r, c := StripThinking("hi\n\nhello")
if r != "hi" {
t.Fatalf("reasoning=%q", r)
}
if c != "hello" {
t.Fatalf("content=%q", c)
}
}
func TestStripThinking_Truncated(t *testing.T) {
_, c := StripThinking("beforethis is truncated")
if c != "before" {
t.Fatalf("content=%q", c)
}
}
func TestExtractToolCalls(t *testing.T) {
args, _ := json.Marshal(map[string]any{"x": 1})
s := "before\n{\"name\":\"f\",\"arguments\":" + string(args) + "}\nafter"
content, calls, err := ExtractToolCalls(s)
if err != nil {
t.Fatal(err)
}
if content != "beforeafter" {
t.Fatalf("content=%q", content)
}
if len(calls) != 1 || calls[0].Name != "f" {
t.Fatalf("calls=%+v", calls)
}
}