Skip to content

Commit 8293596

Browse files
committed
chore: update tests to support draft version
1 parent 7292814 commit 8293596

File tree

1 file changed

+116
-25
lines changed

1 file changed

+116
-25
lines changed

tests/serde_smoke_test.rs

Lines changed: 116 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11
mod test_deserialize {
2-
#[cfg(feature = "2024_11_05")]
3-
use rust_mcp_schema::mcp_2024_11_05::schema_utils::*;
4-
#[cfg(any(feature = "latest", feature = "2025_06_18"))]
2+
53
#[cfg(feature = "2024_11_05")]
64
use rust_mcp_schema::mcp_2024_11_05::*;
7-
#[cfg(feature = "2025_03_26")]
8-
use rust_mcp_schema::mcp_2025_03_26::schema_utils::*;
5+
96
#[cfg(feature = "2025_03_26")]
107
use rust_mcp_schema::mcp_2025_03_26::*;
11-
#[cfg(feature = "draft")]
12-
use rust_mcp_schema::mcp_draft::schema_utils::*;
8+
139
#[cfg(feature = "draft")]
1410
use rust_mcp_schema::mcp_draft::*;
11+
1512
#[cfg(any(feature = "latest", feature = "2025_06_18"))]
1613
use rust_mcp_schema::*;
17-
use serde_json::json;
18-
use std::collections::HashMap;
1914

2015
use serde::{Deserialize, Serialize};
16+
use serde_json::json;
2117
use serde_json::{Map, Value};
18+
use std::collections::HashMap;
2219

2320
/* ---------------------- TESTS ---------------------- */
2421

@@ -134,6 +131,7 @@ mod test_deserialize {
134131
test_serde(&schema_min);
135132
}
136133

134+
#[cfg(not(feature = "draft"))]
137135
#[test]
138136
fn test_call_tool_request() {
139137
let params = CallToolRequestParams {
@@ -243,6 +241,7 @@ mod test_deserialize {
243241
test_serde(&notif);
244242
}
245243

244+
#[cfg(not(feature = "draft"))]
246245
#[test]
247246
fn test_client_request() {
248247
let req = ClientRequest::CallToolRequest(CallToolRequest::new(CallToolRequestParams {
@@ -269,6 +268,7 @@ mod test_deserialize {
269268
test_serde(&result);
270269
}
271270

271+
#[cfg(not(feature = "draft"))]
272272
#[test]
273273
fn test_complete_request() {
274274
let argument = CompleteRequestParamsArgument {
@@ -328,7 +328,11 @@ mod test_deserialize {
328328
temperature: None,
329329
};
330330

331-
let req = CreateMessageRequest::new(params);
331+
let req = CreateMessageRequest::new(
332+
#[cfg(feature = "draft")]
333+
RequestId::Integer(97),
334+
params,
335+
);
332336
test_serde(&req);
333337
}
334338

@@ -357,7 +361,11 @@ mod test_deserialize {
357361
requested_schema: ElicitRequestedSchema::new(HashMap::new(), vec![]),
358362
};
359363

360-
let req = ElicitRequest::new(params);
364+
let req = ElicitRequest::new(
365+
#[cfg(feature = "draft")]
366+
RequestId::Integer(97),
367+
params,
368+
);
361369
test_serde(&req);
362370
}
363371

@@ -397,7 +405,11 @@ mod test_deserialize {
397405
arguments: None,
398406
};
399407

400-
let req = GetPromptRequest::new(params);
408+
let req = GetPromptRequest::new(
409+
#[cfg(feature = "draft")]
410+
RequestId::Integer(97),
411+
params,
412+
);
401413
test_serde(&req);
402414
}
403415

@@ -452,10 +464,18 @@ mod test_deserialize {
452464
#[cfg(any(feature = "draft", feature = "2025_06_18"))]
453465
title: Some("title".to_string()),
454466
version: "version".to_string(),
467+
#[cfg(feature = "draft")]
468+
icons: vec![],
469+
#[cfg(feature = "draft")]
470+
website_url: Some("https://github.com/rust-mcp-stack/rust-mcp-sdk".to_string()),
455471
},
456472
};
457473

458-
let req = InitializeRequest::new(params);
474+
let req = InitializeRequest::new(
475+
#[cfg(feature = "draft")]
476+
RequestId::Integer(97),
477+
params,
478+
);
459479
test_serde(&req);
460480
}
461481

@@ -471,6 +491,10 @@ mod test_deserialize {
471491
#[cfg(any(feature = "draft", feature = "2025_06_18"))]
472492
title: Some("title".to_string()),
473493
version: "version".to_string(),
494+
#[cfg(feature = "draft")]
495+
icons: vec![],
496+
#[cfg(feature = "draft")]
497+
website_url: Some("https://github.com/rust-mcp-stack/rust-mcp-sdk".to_string()),
474498
},
475499
};
476500
test_serde(&result);
@@ -500,7 +524,11 @@ mod test_deserialize {
500524
fn test_list_prompts_request() {
501525
let params = ListPromptsRequestParams { cursor: None };
502526

503-
let req = ListPromptsRequest::new(Some(params));
527+
let req = ListPromptsRequest::new(
528+
#[cfg(feature = "draft")]
529+
RequestId::Integer(97),
530+
Some(params),
531+
);
504532
test_serde(&req);
505533
}
506534

@@ -518,7 +546,11 @@ mod test_deserialize {
518546
fn test_list_resources_request() {
519547
let params = ListResourcesRequestParams { cursor: None };
520548

521-
let req = ListResourcesRequest::new(Some(params));
549+
let req = ListResourcesRequest::new(
550+
#[cfg(feature = "draft")]
551+
RequestId::Integer(97),
552+
Some(params),
553+
);
522554
test_serde(&req);
523555
}
524556

@@ -536,7 +568,11 @@ mod test_deserialize {
536568
fn test_list_resource_templates_request() {
537569
let params = ListResourceTemplatesRequestParams { cursor: None };
538570

539-
let req = ListResourceTemplatesRequest::new(Some(params));
571+
let req = ListResourceTemplatesRequest::new(
572+
#[cfg(feature = "draft")]
573+
RequestId::Integer(97),
574+
Some(params),
575+
);
540576
test_serde(&req);
541577
}
542578

@@ -555,14 +591,20 @@ mod test_deserialize {
555591
#[cfg(any(feature = "draft", feature = "2025_06_18"))]
556592
title: None,
557593
uri_template: "ice://something".to_string(),
594+
#[cfg(feature = "draft")]
595+
icons: vec![],
558596
}],
559597
};
560598
test_serde(&result);
561599
}
562600

563601
#[test]
564602
fn test_list_roots_request() {
565-
let req = ListRootsRequest::new(Some(ListRootsRequestParams { meta: None, extra: None }));
603+
let req = ListRootsRequest::new(
604+
#[cfg(feature = "draft")]
605+
RequestId::Integer(97),
606+
Some(ListRootsRequestParams { meta: None, extra: None }),
607+
);
566608
test_serde(&req);
567609
}
568610

@@ -578,7 +620,11 @@ mod test_deserialize {
578620
#[test]
579621
fn test_list_tools_request() {
580622
let params = ListToolsRequestParams { cursor: None };
581-
let req = ListToolsRequest::new(Some(params));
623+
let req = ListToolsRequest::new(
624+
#[cfg(feature = "draft")]
625+
RequestId::Integer(97),
626+
Some(params),
627+
);
582628
test_serde(&req);
583629
}
584630

@@ -612,14 +658,20 @@ mod test_deserialize {
612658
minimum: None,
613659
title: None,
614660
type_: NumberSchemaType::Integer,
661+
#[cfg(feature = "draft")]
662+
default: None,
615663
};
616664
test_serde(&schema);
617665
}
618666

619667
#[test]
620668
fn test_ping_request() {
621669
let params = PingRequestParams { meta: None, extra: None };
622-
let req = PingRequest::new(Some(params));
670+
let req = PingRequest::new(
671+
#[cfg(feature = "draft")]
672+
RequestId::Integer(97),
673+
Some(params),
674+
);
623675
test_serde(&req);
624676
}
625677

@@ -653,6 +705,8 @@ mod test_deserialize {
653705
#[cfg(any(feature = "draft", feature = "2025_06_18"))]
654706
title: None,
655707
}],
708+
#[cfg(feature = "draft")]
709+
icons: vec![],
656710
};
657711
test_serde(&prompt);
658712
}
@@ -678,7 +732,11 @@ mod test_deserialize {
678732
#[test]
679733
fn test_read_resource_request() {
680734
let params = ReadResourceRequestParams { uri: "test".to_string() };
681-
let req = ReadResourceRequest::new(params);
735+
let req = ReadResourceRequest::new(
736+
#[cfg(feature = "draft")]
737+
RequestId::Integer(97),
738+
params,
739+
);
682740
test_serde(&req);
683741
}
684742

@@ -708,8 +766,18 @@ mod test_deserialize {
708766
let name = "name".to_string();
709767
let size = None;
710768
let title = None;
711-
let link = ResourceLink::new(name, uri, annotations, description, meta, mime_type, size, title);
712-
769+
let link = ResourceLink::new(
770+
#[cfg(feature = "draft")]
771+
vec![],
772+
name,
773+
uri,
774+
annotations,
775+
description,
776+
meta,
777+
mime_type,
778+
size,
779+
title,
780+
);
713781
test_serde(&link);
714782
}
715783

@@ -732,6 +800,8 @@ mod test_deserialize {
732800
title: None,
733801
mime_type: Some("mime/pine".to_string()),
734802
uri_template: "ice://something".to_string(),
803+
#[cfg(feature = "draft")]
804+
icons: vec![],
735805
};
736806
test_serde(&template);
737807
}
@@ -805,7 +875,11 @@ mod test_deserialize {
805875

806876
#[test]
807877
fn test_server_request() {
808-
let req = ServerRequest::PingRequest(PingRequest::new(None));
878+
let req = ServerRequest::PingRequest(PingRequest::new(
879+
#[cfg(feature = "draft")]
880+
RequestId::Integer(97),
881+
None,
882+
));
809883
test_serde(&req);
810884
}
811885

@@ -821,6 +895,10 @@ mod test_deserialize {
821895
#[cfg(any(feature = "draft", feature = "2025_06_18"))]
822896
title: Some("title".to_string()),
823897
version: "version".to_string(),
898+
#[cfg(feature = "draft")]
899+
icons: vec![],
900+
#[cfg(feature = "draft")]
901+
website_url: Some("https://github.com/rust-mcp-stack/rust-mcp-sdk".to_string()),
824902
},
825903
});
826904
test_serde(&result);
@@ -832,14 +910,20 @@ mod test_deserialize {
832910
level: LoggingLevel::Info,
833911
};
834912

835-
let req = SetLevelRequest::new(params);
913+
let req = SetLevelRequest::new(
914+
#[cfg(feature = "draft")]
915+
RequestId::Integer(23),
916+
params,
917+
);
836918
test_serde(&req);
837919
}
838920

839921
#[cfg(any(feature = "draft", feature = "2025_06_18"))]
840922
#[test]
841923
fn test_string_schema() {
842924
let schema = StringSchema::new(
925+
#[cfg(feature = "draft")]
926+
Some("default".to_string()),
843927
Some("description".to_string()),
844928
None,
845929
Some(21),
@@ -854,7 +938,11 @@ mod test_deserialize {
854938
fn test_subscribe_request() {
855939
let params = SubscribeRequestParams { uri: "test".to_string() };
856940

857-
let req = SubscribeRequest::new(params);
941+
let req = SubscribeRequest::new(
942+
#[cfg(feature = "draft")]
943+
RequestId::Integer(22),
944+
params,
945+
);
858946
test_serde(&req);
859947
}
860948

@@ -896,6 +984,8 @@ mod test_deserialize {
896984
output_schema: None,
897985
#[cfg(any(feature = "draft", feature = "2025_06_18"))]
898986
title: None,
987+
#[cfg(feature = "draft")]
988+
icons: vec![],
899989
};
900990
test_serde(&tool);
901991
}
@@ -926,6 +1016,7 @@ mod test_deserialize {
9261016
test_serde(&schema);
9271017
}
9281018

1019+
#[cfg(not(feature = "draft"))]
9291020
#[test]
9301021
fn test_unsubscribe_request() {
9311022
let params = UnsubscribeRequestParams { uri: "test".to_string() };

0 commit comments

Comments
 (0)