Skip to content

Commit 3c98177

Browse files
committed
refactor: remove redundant elicitation direction tests
- Remove test_elicitation_not_in_client_request (duplicated functionality) - Remove redundant ServerRequest match in test_elicitation_direction_server_to_client - Direction compliance is already verified by the remaining comprehensive test - Reduces test fragility and maintenance burden
1 parent a8c9b5e commit 3c98177

File tree

1 file changed

+1
-42
lines changed

1 file changed

+1
-42
lines changed

crates/rmcp/tests/test_elicitation.rs

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -668,20 +668,12 @@ async fn test_elicitation_direction_server_to_client() {
668668
assert_eq!(serialized["requestedSchema"]["type"], "string");
669669

670670
// Test that elicitation requests are part of ServerRequest
671-
let server_request = ServerRequest::CreateElicitationRequest(CreateElicitationRequest {
671+
let _server_request = ServerRequest::CreateElicitationRequest(CreateElicitationRequest {
672672
method: ElicitationCreateRequestMethod,
673673
params: elicitation_request,
674674
extensions: Default::default(),
675675
});
676676

677-
// Verify server request can be serialized
678-
match server_request {
679-
ServerRequest::CreateElicitationRequest(_) => {
680-
// This is correct - server can send elicitation requests
681-
}
682-
_ => panic!("CreateElicitationRequest should be part of ServerRequest"),
683-
}
684-
685677
// Test that client can respond with elicitation results
686678
let client_result = ClientResult::CreateElicitationResult(CreateElicitationResult {
687679
action: ElicitationAction::Accept,
@@ -793,39 +785,6 @@ async fn test_elicitation_actions_compliance() {
793785
}
794786
}
795787

796-
/// Test that CreateElicitationRequest is NOT in ClientRequest (direction compliance)
797-
#[tokio::test]
798-
async fn test_elicitation_not_in_client_request() {
799-
// This test ensures that clients cannot initiate elicitation requests
800-
// according to MCP 2025-06-18 specification
801-
802-
// Compile-time test: if this compiles, the test fails
803-
// The following should NOT compile if our implementation is correct:
804-
// let client_request = ClientRequest::CreateElicitationRequest(...);
805-
806-
// Instead, we verify that all valid ClientRequest variants do NOT include elicitation
807-
let valid_client_requests = [
808-
"PingRequest",
809-
"InitializeRequest",
810-
"CompleteRequest",
811-
"SetLevelRequest",
812-
"GetPromptRequest",
813-
"ListPromptsRequest",
814-
"ListResourcesRequest",
815-
"ListResourceTemplatesRequest",
816-
"ReadResourceRequest",
817-
"SubscribeRequest",
818-
"UnsubscribeRequest",
819-
"CallToolRequest",
820-
"ListToolsRequest",
821-
// CreateElicitationRequest should NOT be here
822-
];
823-
824-
// Verify the list doesn't contain elicitation
825-
assert!(!valid_client_requests.contains(&"CreateElicitationRequest"));
826-
assert_eq!(valid_client_requests.len(), 13); // Should be 13, not 14
827-
}
828-
829788
/// Test that CreateElicitationResult IS in ClientResult (response compliance)
830789
#[tokio::test]
831790
async fn test_elicitation_result_in_client_result() {

0 commit comments

Comments
 (0)