11use axum_example:: { create_app, create_app_with_layer} ;
22use axum_test:: TestServer ;
3- use serde_json:: json;
43use serde:: { Deserialize , Serialize } ;
4+ use serde_json:: json;
55use vespera:: { Schema , schema} ;
66
77#[ tokio:: test]
@@ -476,7 +476,10 @@ fn test_schema_macro_with_omit() {
476476 let properties = user_schema. properties . unwrap ( ) ;
477477 assert ! ( properties. contains_key( "id" ) , "Missing 'id' property" ) ;
478478 assert ! ( properties. contains_key( "name" ) , "Missing 'name' property" ) ;
479- assert ! ( !properties. contains_key( "email" ) , "'email' should be omitted" ) ;
479+ assert ! (
480+ !properties. contains_key( "email" ) ,
481+ "'email' should be omitted"
482+ ) ;
480483
481484 // Verify required fields - email should not be in required
482485 let required = user_schema. required . unwrap ( ) ;
@@ -494,7 +497,10 @@ fn test_schema_macro_with_multiple_omit() {
494497 let properties = user_schema. properties . unwrap ( ) ;
495498 assert ! ( !properties. contains_key( "id" ) , "'id' should be omitted" ) ;
496499 assert ! ( properties. contains_key( "name" ) , "Missing 'name' property" ) ;
497- assert ! ( !properties. contains_key( "email" ) , "'email' should be omitted" ) ;
500+ assert ! (
501+ !properties. contains_key( "email" ) ,
502+ "'email' should be omitted"
503+ ) ;
498504
499505 // Verify only 'name' is required
500506 let required = user_schema. required . unwrap ( ) ;
@@ -511,7 +517,10 @@ fn test_schema_macro_with_pick() {
511517 let properties = user_schema. properties . unwrap ( ) ;
512518 assert ! ( properties. contains_key( "id" ) , "Missing 'id' property" ) ;
513519 assert ! ( properties. contains_key( "name" ) , "Missing 'name' property" ) ;
514- assert ! ( !properties. contains_key( "email" ) , "'email' should not be picked" ) ;
520+ assert ! (
521+ !properties. contains_key( "email" ) ,
522+ "'email' should not be picked"
523+ ) ;
515524
516525 // Verify required fields
517526 let required = user_schema. required . unwrap ( ) ;
@@ -532,8 +541,14 @@ fn test_schema_macro_with_optional_fields() {
532541 let required = user_schema. required . unwrap ( ) ;
533542 assert ! ( required. contains( & "id" . to_string( ) ) ) ;
534543 assert ! ( required. contains( & "name" . to_string( ) ) ) ;
535- assert ! ( !required. contains( & "email" . to_string( ) ) , "'email' is Option<T>, should not be required" ) ;
536- assert ! ( !required. contains( & "bio" . to_string( ) ) , "'bio' has default, should not be required" ) ;
544+ assert ! (
545+ !required. contains( & "email" . to_string( ) ) ,
546+ "'email' is Option<T>, should not be required"
547+ ) ;
548+ assert ! (
549+ !required. contains( & "bio" . to_string( ) ) ,
550+ "'bio' has default, should not be required"
551+ ) ;
537552}
538553
539554#[ test]
@@ -544,9 +559,18 @@ fn test_schema_macro_with_rename_all() {
544559 let properties = user_schema. properties . unwrap ( ) ;
545560
546561 // Properties should have camelCase names
547- assert ! ( properties. contains_key( "userId" ) , "Missing 'userId' property (renamed from user_id)" ) ;
548- assert ! ( properties. contains_key( "userName" ) , "Missing 'userName' property (renamed from user_name)" ) ;
549- assert ! ( properties. contains_key( "emailAddress" ) , "Missing 'emailAddress' property (renamed from email_address)" ) ;
562+ assert ! (
563+ properties. contains_key( "userId" ) ,
564+ "Missing 'userId' property (renamed from user_id)"
565+ ) ;
566+ assert ! (
567+ properties. contains_key( "userName" ) ,
568+ "Missing 'userName' property (renamed from user_name)"
569+ ) ;
570+ assert ! (
571+ properties. contains_key( "emailAddress" ) ,
572+ "Missing 'emailAddress' property (renamed from email_address)"
573+ ) ;
550574
551575 // Should NOT have snake_case names
552576 assert ! ( !properties. contains_key( "user_id" ) ) ;
@@ -562,7 +586,10 @@ fn test_schema_macro_omit_with_renamed_field() {
562586 let properties = user_schema. properties . unwrap ( ) ;
563587 assert ! ( properties. contains_key( "userId" ) ) ;
564588 assert ! ( properties. contains_key( "userName" ) ) ;
565- assert ! ( !properties. contains_key( "emailAddress" ) , "'emailAddress' should be omitted" ) ;
589+ assert ! (
590+ !properties. contains_key( "emailAddress" ) ,
591+ "'emailAddress' should be omitted"
592+ ) ;
566593}
567594
568595#[ test]
@@ -573,7 +600,10 @@ fn test_schema_macro_omit_with_rust_field_name() {
573600 let properties = user_schema. properties . unwrap ( ) ;
574601 assert ! ( properties. contains_key( "userId" ) ) ;
575602 assert ! ( properties. contains_key( "userName" ) ) ;
576- assert ! ( !properties. contains_key( "emailAddress" ) , "'email_address' (rust name) should omit 'emailAddress'" ) ;
603+ assert ! (
604+ !properties. contains_key( "emailAddress" ) ,
605+ "'email_address' (rust name) should omit 'emailAddress'"
606+ ) ;
577607}
578608
579609// Tests for schema_type! with rename option
@@ -591,11 +621,20 @@ async fn test_get_user_dto_with_renamed_fields() {
591621 // JSON should use original field names (id, name) due to serde(rename)
592622 // even though Rust struct uses user_id, display_name
593623 assert_eq ! ( user[ "id" ] , 42 , "JSON should serialize 'user_id' as 'id'" ) ;
594- assert_eq ! ( user[ "name" ] , "User 42" , "JSON should serialize 'display_name' as 'name'" ) ;
595-
624+ assert_eq ! (
625+ user[ "name" ] , "User 42" ,
626+ "JSON should serialize 'display_name' as 'name'"
627+ ) ;
628+
596629 // Verify renamed field names are NOT in JSON
597- assert ! ( user. get( "user_id" ) . is_none( ) , "'user_id' should not appear in JSON" ) ;
598- assert ! ( user. get( "display_name" ) . is_none( ) , "'display_name' should not appear in JSON" ) ;
630+ assert ! (
631+ user. get( "user_id" ) . is_none( ) ,
632+ "'user_id' should not appear in JSON"
633+ ) ;
634+ assert ! (
635+ user. get( "display_name" ) . is_none( ) ,
636+ "'display_name' should not appear in JSON"
637+ ) ;
599638}
600639
601640// Tests for schema_type! with add option
@@ -621,7 +660,7 @@ async fn test_create_user_with_meta_add_fields() {
621660 // Verify fields from User (picked)
622661 assert_eq ! ( result[ "name" ] , "Test User" ) ;
623662 assert_eq ! ( result[ "email" ] , "test@example.com" ) ;
624-
663+
625664 // Verify added fields
626665 assert_eq ! ( result[ "request_id" ] , "req-12345" ) ;
627666 assert_eq ! ( result[ "created_at" ] , "2024-01-27T12:00:00Z" ) ; // Server fills this in
@@ -647,10 +686,16 @@ async fn test_memo_create_with_picked_fields() {
647686
648687 assert_eq ! ( result[ "title" ] , "Test Memo" ) ;
649688 assert_eq ! ( result[ "content" ] , "This is test content" ) ;
650-
689+
651690 // These fields should NOT be in the response (not picked)
652- assert ! ( result. get( "id" ) . is_none( ) , "id should not be in CreateMemoRequest" ) ;
653- assert ! ( result. get( "created_at" ) . is_none( ) , "created_at should not be in CreateMemoRequest" ) ;
691+ assert ! (
692+ result. get( "id" ) . is_none( ) ,
693+ "id should not be in CreateMemoRequest"
694+ ) ;
695+ assert ! (
696+ result. get( "created_at" ) . is_none( ) ,
697+ "created_at should not be in CreateMemoRequest"
698+ ) ;
654699}
655700
656701#[ tokio:: test]
@@ -673,7 +718,7 @@ async fn test_memo_update_with_added_id_field() {
673718 // Verify picked fields
674719 assert_eq ! ( result[ "title" ] , "Updated Memo" ) ;
675720 assert_eq ! ( result[ "content" ] , "Updated content" ) ;
676-
721+
677722 // Verify added field
678723 assert_eq ! ( result[ "id" ] , 42 , "id should be present (added field)" ) ;
679724}
0 commit comments