MCPcopy Create free account
hub / github.com/modelcontextprotocol/go-sdk / TestSetErrorPreservesContent

Function TestSetErrorPreservesContent

mcp/mcp_test.go:2333–2372  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2331}
2332
2333func TestSetErrorPreservesContent(t *testing.T) {
2334 for _, tt := range []struct {
2335 name string
2336 content []Content
2337 err error
2338 wantContent string
2339 }{
2340 {
2341 name: "nil content",
2342 err: errors.New("internal failure"),
2343 wantContent: "internal failure",
2344 },
2345 {
2346 name: "empty slice content",
2347 content: []Content{},
2348 err: errors.New("internal failure"),
2349 wantContent: "internal failure",
2350 },
2351 {
2352 name: "existing content preserved",
2353 content: []Content{&TextContent{Text: "user-friendly msg"}},
2354 err: errors.New("db timeout"),
2355 wantContent: "user-friendly msg",
2356 },
2357 } {
2358 t.Run(tt.name, func(t *testing.T) {
2359 res := CallToolResult{Content: tt.content}
2360 res.SetError(tt.err)
2361 if !res.IsError {
2362 t.Fatal("want IsError=true")
2363 }
2364 if got := res.Content[0].(*TextContent).Text; got != tt.wantContent {
2365 t.Errorf("Content text = %q, want %q", got, tt.wantContent)
2366 }
2367 if got := res.GetError(); got != tt.err {
2368 t.Errorf("GetError() = %v, want %v", got, tt.err)
2369 }
2370 })
2371 }
2372}
2373
2374var ctrCmpOpts = []cmp.Option{cmp.AllowUnexported(CallToolResult{})}

Callers

nothing calls this directly

Calls 3

SetErrorMethod · 0.95
GetErrorMethod · 0.95
RunMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…