feat: ToolError migration to ErrorData (#4051)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#![cfg(test)]
|
||||
|
||||
use mcp_core::ToolError;
|
||||
use rmcp::model::ErrorCode;
|
||||
use serde_json::json;
|
||||
|
||||
use goose::agents::platform_tools::PLATFORM_MANAGE_SCHEDULE_TOOL_NAME;
|
||||
@@ -94,9 +94,10 @@ async fn test_schedule_tool_list_action_error() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Failed to list jobs"));
|
||||
assert!(msg.contains("Database error"));
|
||||
if let Err(err) = result {
|
||||
assert_eq!(err.code, ErrorCode::INTERNAL_ERROR);
|
||||
assert!(err.message.contains("Failed to list jobs"));
|
||||
assert!(err.message.contains("Database error"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -153,8 +154,9 @@ async fn test_schedule_tool_create_action_missing_params() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Missing 'recipe_path' parameter"));
|
||||
if let Err(err) = result {
|
||||
assert_eq!(err.code, ErrorCode::INVALID_PARAMS);
|
||||
assert!(err.message.contains("Missing 'recipe_path' parameter"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -171,8 +173,9 @@ async fn test_schedule_tool_create_action_missing_params() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Missing 'cron_expression' parameter"));
|
||||
if let Err(err) = result {
|
||||
assert_eq!(err.code, ErrorCode::INVALID_PARAMS);
|
||||
assert!(err.message.contains("Missing 'cron_expression' parameter"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -194,8 +197,9 @@ async fn test_schedule_tool_create_action_nonexistent_recipe() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Recipe file not found"));
|
||||
if let Err(err) = result {
|
||||
assert_eq!(err.code, ErrorCode::INTERNAL_ERROR);
|
||||
assert!(err.message.contains("Recipe file not found"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -220,8 +224,9 @@ async fn test_schedule_tool_create_action_invalid_recipe() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Invalid JSON recipe"));
|
||||
if let Err(err) = result {
|
||||
assert_eq!(err.code, ErrorCode::INTERNAL_ERROR);
|
||||
assert!(err.message.contains("Invalid JSON recipe"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -253,9 +258,10 @@ async fn test_schedule_tool_create_action_scheduler_error() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Failed to create job"));
|
||||
assert!(msg.contains("job1"));
|
||||
if let Err(err) = result {
|
||||
assert_eq!(err.code, ErrorCode::INTERNAL_ERROR);
|
||||
assert!(err.message.contains("Failed to create job"));
|
||||
assert!(err.message.contains("job1"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -311,8 +317,9 @@ async fn test_schedule_tool_run_now_action_missing_job_id() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Missing 'job_id' parameter"));
|
||||
if let Err(err) = result {
|
||||
assert_eq!(err.code, ErrorCode::INVALID_PARAMS);
|
||||
assert!(err.message.contains("Missing 'job_id' parameter"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -337,9 +344,9 @@ async fn test_schedule_tool_run_now_action_nonexistent_job() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Failed to run job"));
|
||||
assert!(msg.contains("nonexistent"));
|
||||
if let Err(err) = result {
|
||||
assert!(err.message.contains("Failed to run job"));
|
||||
assert!(err.message.contains("nonexistent"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -391,10 +398,11 @@ async fn test_schedule_tool_pause_action_missing_job_id() {
|
||||
let result = agent
|
||||
.handle_schedule_management(arguments, "test_req".to_string())
|
||||
.await;
|
||||
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Missing 'job_id' parameter"));
|
||||
if let Err(err) = result {
|
||||
assert!(err.message.contains("Missing 'job_id' parameter"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -422,9 +430,9 @@ async fn test_schedule_tool_pause_action_running_job() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Failed to pause job"));
|
||||
assert!(msg.contains("job1"));
|
||||
if let Err(err) = result {
|
||||
assert!(err.message.contains("Failed to pause job"));
|
||||
assert!(err.message.contains("job1"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -551,8 +559,8 @@ async fn test_schedule_tool_kill_action_not_running() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Failed to kill job"));
|
||||
if let Err(err) = result {
|
||||
assert!(err.message.contains("Failed to kill job"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -764,8 +772,10 @@ async fn test_schedule_tool_session_content_action() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Session 'non_existent_session' not found"));
|
||||
if let Err(err) = result {
|
||||
assert!(err
|
||||
.message
|
||||
.contains("Session 'non_existent_session' not found"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -840,8 +850,8 @@ async fn test_schedule_tool_session_content_action_missing_session_id() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Missing 'session_id' parameter"));
|
||||
if let Err(err) = result {
|
||||
assert!(err.message.contains("Missing 'session_id' parameter"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
@@ -861,8 +871,8 @@ async fn test_schedule_tool_unknown_action() {
|
||||
.await;
|
||||
assert!(result.is_err());
|
||||
|
||||
if let Err(ToolError::ExecutionError(msg)) = result {
|
||||
assert!(msg.contains("Unknown action"));
|
||||
if let Err(err) = result {
|
||||
assert!(err.message.contains("Unknown action"));
|
||||
} else {
|
||||
panic!("Expected ExecutionError");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user