package structuredoutput import ( "errors" "testing" ) func TestIsMalformedError(t *testing.T) { cases := []struct { name string err error want bool }{ {name: "nil", err: nil, want: false}, {name: "generic", err: errors.New("network timeout"), want: false}, {name: "malformed", err: errors.New("malformed structured output"), want: true}, {name: "decode structured", err: errors.New("decode structured output: unexpected end of JSON input"), want: true}, {name: "missing choices", err: errors.New("provider response missing choices"), want: true}, {name: "missing content", err: errors.New("provider response missing assistant message content"), want: true}, {name: "empty content", err: errors.New("provider response assistant message content is empty"), want: true}, {name: "invalid content json", err: errors.New("provider response assistant message content is not valid JSON"), want: true}, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { got := IsMalformedError(tc.err) if got != tc.want { t.Fatalf("IsMalformedError(%v): got=%v want=%v", tc.err, got, tc.want) } }) } }