fix: handle JsonRPC error variants as responses (#2903)
This commit is contained in:
@@ -110,6 +110,12 @@ where
|
|||||||
let collected_events_after = events.lock().await.len();
|
let collected_events_after = events.lock().await.len();
|
||||||
assert_eq!(collected_events_after - collected_eventes_before, n_steps);
|
assert_eq!(collected_events_after - collected_eventes_before, n_steps);
|
||||||
|
|
||||||
|
let error_result = client
|
||||||
|
.call_tool("add", serde_json::json!({ "a": "foo", "b": "bar" }))
|
||||||
|
.await;
|
||||||
|
assert!(error_result.is_err());
|
||||||
|
println!("Error result: {error_result:#?}\n");
|
||||||
|
|
||||||
// List resources
|
// List resources
|
||||||
let resources = client.list_resources(None).await?;
|
let resources = client.list_resources(None).await?;
|
||||||
println!("Resources: {resources:#?}\n");
|
println!("Resources: {resources:#?}\n");
|
||||||
|
|||||||
@@ -135,7 +135,8 @@ where
|
|||||||
Ok(message) => {
|
Ok(message) => {
|
||||||
tracing::info!("Received message: {:?}", message);
|
tracing::info!("Received message: {:?}", message);
|
||||||
match message {
|
match message {
|
||||||
JsonRpcMessage::Response(JsonRpcResponse { id: Some(id), .. }) => {
|
JsonRpcMessage::Response(JsonRpcResponse { id: Some(id), .. })
|
||||||
|
| JsonRpcMessage::Error(JsonRpcError { id: Some(id), .. }) => {
|
||||||
service_ptr.respond(&id.to_string(), Ok(message)).await;
|
service_ptr.respond(&id.to_string(), Ok(message)).await;
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
|
|||||||
Reference in New Issue
Block a user