@@ -778,3 +778,65 @@ fn test_rustapi_nest_includes_routes_in_openapi_spec() {
778778 "Should have 'item_id' path parameter"
779779 ) ;
780780}
781+
782+ #[ test]
783+ fn apply_health_endpoints_registers_default_paths ( ) {
784+ let mut app = RustApi :: new ( ) . health_endpoints ( ) ;
785+ app. apply_health_endpoints ( ) ;
786+ let router = app. into_router ( ) ;
787+ let routes = router. registered_routes ( ) ;
788+ assert ! ( routes. contains_key( "/health" ) ) ;
789+ assert ! ( routes. contains_key( "/ready" ) ) ;
790+ assert ! ( routes. contains_key( "/live" ) ) ;
791+ }
792+
793+ #[ test]
794+ fn apply_status_page_registers_status_route ( ) {
795+ let mut app = RustApi :: new ( ) . status_page ( ) ;
796+ app. apply_status_page ( ) ;
797+ let router = app. into_router ( ) ;
798+ assert ! ( router. registered_routes( ) . contains_key( "/status" ) ) ;
799+ }
800+
801+ #[ test]
802+ fn print_hot_reload_banner_is_noop_when_disabled ( ) {
803+ let app = RustApi :: new ( ) ;
804+ app. print_hot_reload_banner ( "127.0.0.1:8080" ) ;
805+ }
806+
807+ #[ test]
808+ fn print_hot_reload_banner_logs_when_enabled ( ) {
809+ let app = RustApi :: new ( ) . hot_reload ( true ) ;
810+ app. print_hot_reload_banner ( "127.0.0.1:8080" ) ;
811+ }
812+
813+ #[ tokio:: test]
814+ async fn on_start_hooks_execute_in_registration_order ( ) {
815+ use std:: sync:: atomic:: { AtomicUsize , Ordering } ;
816+ use std:: sync:: Arc ;
817+
818+ let order = Arc :: new ( AtomicUsize :: new ( 0 ) ) ;
819+ let mut app = RustApi :: new ( )
820+ . on_start ( {
821+ let order = order. clone ( ) ;
822+ move || {
823+ let order = order. clone ( ) ;
824+ async move {
825+ assert_eq ! ( order. fetch_add( 1 , Ordering :: SeqCst ) , 0 ) ;
826+ }
827+ }
828+ } )
829+ . on_start ( {
830+ let order = order. clone ( ) ;
831+ move || {
832+ let order = order. clone ( ) ;
833+ async move {
834+ assert_eq ! ( order. fetch_add( 1 , Ordering :: SeqCst ) , 1 ) ;
835+ }
836+ }
837+ } ) ;
838+
839+ for hook in std:: mem:: take ( & mut app. lifecycle_hooks . on_start ) {
840+ hook ( ) . await ;
841+ }
842+ }
0 commit comments