@@ -460,10 +460,9 @@ fn parse_query_struct_to_parameters(
460460mod tests {
461461 use super :: * ;
462462 use rstest:: rstest;
463- use serial_test:: serial;
464463 use std:: collections:: HashMap ;
465464 use vespera_core:: route:: ParameterLocation ;
466- use insta:: assert_debug_snapshot;
465+ use insta:: { assert_debug_snapshot, with_settings } ;
467466
468467 fn setup_test_data ( func_src : & str ) -> ( HashMap < String , String > , HashMap < String , String > ) {
469468 let mut struct_definitions = HashMap :: new ( ) ;
@@ -502,25 +501,29 @@ mod tests {
502501 #[ case(
503502 "fn test(params: Path<(String, i32)>) {}" ,
504503 vec![ "user_id" . to_string( ) , "count" . to_string( ) ] ,
505- vec![ vec![ ParameterLocation :: Path , ParameterLocation :: Path ] ]
504+ vec![ vec![ ParameterLocation :: Path , ParameterLocation :: Path ] ] ,
505+ "path_tuple"
506506 ) ]
507507 #[ case(
508508 "fn show(Path(id): Path<i32>) {}" ,
509509 vec![ "item_id" . to_string( ) ] ,
510- vec![ vec![ ParameterLocation :: Path ] ]
510+ vec![ vec![ ParameterLocation :: Path ] ] ,
511+ "path_single"
511512 ) ]
512513 #[ case(
513514 "fn test(Query(params): Query<HashMap<String, String>>) {}" ,
514515 vec![ ] ,
515- vec![ vec![ ] ]
516+ vec![ vec![ ] ] ,
517+ "query_hashmap"
516518 ) ]
517519 #[ case(
518520 "fn test(TypedHeader(user_agent): TypedHeader<UserAgent>, count: i32) {}" ,
519521 vec![ ] ,
520522 vec![
521523 vec![ ParameterLocation :: Header ] ,
522524 vec![ ] ,
523- ]
525+ ] ,
526+ "typed_header_and_arg"
524527 ) ]
525528 #[ case(
526529 "fn test(TypedHeader(user_agent): TypedHeader<UserAgent>, content_type: Option<TypedHeader<ContentType>>, authorization: Option<TypedHeader<Authorization<Bearer>>>) {}" ,
@@ -529,64 +532,74 @@ mod tests {
529532 vec![ ParameterLocation :: Header ] ,
530533 vec![ ParameterLocation :: Header ] ,
531534 vec![ ParameterLocation :: Header ] ,
532- ]
535+ ] ,
536+ "typed_header_multi"
533537 ) ]
534538 #[ case(
535539 "fn test(user_agent: TypedHeader<UserAgent>, count: i32) {}" ,
536540 vec![ ] ,
537541 vec![
538542 vec![ ParameterLocation :: Header ] ,
539543 vec![ ] ,
540- ]
544+ ] ,
545+ "header_value_and_arg"
541546 ) ]
542547 #[ case(
543548 "fn test(&self, id: i32) {}" ,
544549 vec![ ] ,
545550 vec![
546551 vec![ ] ,
547552 vec![ ] ,
548- ]
553+ ] ,
554+ "method_receiver"
549555 ) ]
550556 #[ case(
551557 "fn test(Path((a, b)): Path<(i32, String)>) {}" ,
552558 vec![ ] ,
553- vec![ vec![ ] ]
559+ vec![ vec![ ] ] ,
560+ "path_tuple_destructure"
554561 ) ]
555562 #[ case(
556563 "fn test(params: Query<QueryParams>) {}" ,
557564 vec![ ] ,
558- vec![ vec![ ParameterLocation :: Query , ParameterLocation :: Query ] ]
565+ vec![ vec![ ParameterLocation :: Query , ParameterLocation :: Query ] ] ,
566+ "query_struct"
559567 ) ]
560568 #[ case(
561569 "fn test(body: Json<User>) {}" ,
562570 vec![ ] ,
563- vec![ vec![ ] ]
571+ vec![ vec![ ] ] ,
572+ "json_body"
564573 ) ]
565574 #[ case(
566575 "fn test(params: Query<UnknownType>) {}" ,
567576 vec![ ] ,
568- vec![ vec![ ] ]
577+ vec![ vec![ ] ] ,
578+ "query_unknown"
569579 ) ]
570580 #[ case(
571581 "fn test(params: Query<BTreeMap<String, String>>) {}" ,
572582 vec![ ] ,
573- vec![ vec![ ] ]
583+ vec![ vec![ ] ] ,
584+ "query_map"
574585 ) ]
575586 #[ case(
576587 "fn test(user: Query<User>) {}" ,
577588 vec![ ] ,
578- vec![ vec![ ParameterLocation :: Query , ParameterLocation :: Query ] ]
589+ vec![ vec![ ParameterLocation :: Query , ParameterLocation :: Query ] ] ,
590+ "query_user"
579591 ) ]
580592 #[ case(
581593 "fn test(custom: Header<CustomHeader>) {}" ,
582594 vec![ ] ,
583- vec![ vec![ ParameterLocation :: Header ] ]
595+ vec![ vec![ ParameterLocation :: Header ] ] ,
596+ "header_custom"
584597 ) ]
585- #[ serial]
586598 fn test_parse_function_parameter_cases (
587599 #[ case] func_src : & str ,
588600 #[ case] path_params : Vec < String > ,
589601 #[ case] expected_locations : Vec < Vec < ParameterLocation > > ,
602+ #[ case] suffix : & str ,
590603 ) {
591604 let func: syn:: ItemFn = syn:: parse_str ( func_src) . unwrap ( ) ;
592605 let ( known_schemas, struct_definitions) = setup_test_data ( func_src) ;
@@ -621,7 +634,9 @@ mod tests {
621634 ) ;
622635 parameters. extend ( params. clone ( ) ) ;
623636 }
624- assert_debug_snapshot ! ( parameters) ;
637+ with_settings ! ( { snapshot_suffix => format!( "params_{}" , suffix) } , {
638+ assert_debug_snapshot!( parameters) ;
639+ } ) ;
625640 }
626641
627642 #[ rstest]
0 commit comments