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) } }