@@ -381,6 +381,7 @@ fn lab_offload_handoff_persists_run_when_job_is_accepted() {
381381 & [ "homeboy" . to_string ( ) , "trace" . to_string ( ) ] ,
382382 & job,
383383 None ,
384+ None ,
384385 )
385386 . expect ( "persist handoff run" ) ;
386387
@@ -399,6 +400,38 @@ fn lab_offload_handoff_persists_run_when_job_is_accepted() {
399400 } ) ;
400401}
401402
403+ #[ test]
404+ fn reverse_handoff_persists_broker_transport_for_post_disconnect_refresh ( ) {
405+ homeboy_core:: test_support:: with_isolated_home ( |_| {
406+ let runner = ssh_runner ( ) ;
407+ let job = running_job ( ) ;
408+ let command = vec ! [ "homeboy" . to_string( ) , "trace" . to_string( ) ] ;
409+ let run_id = persist_lab_offload_handoff_run (
410+ & runner,
411+ "/srv/homeboy/project" ,
412+ & command,
413+ & job,
414+ None ,
415+ Some ( "http://127.0.0.1:4321" ) ,
416+ )
417+ . expect ( "persist reverse handoff run" ) ;
418+
419+ let store = homeboy_core:: observation:: ObservationStore :: open_initialized ( ) . expect ( "store" ) ;
420+ let run = store
421+ . get_run ( & run_id)
422+ . expect ( "get run" )
423+ . expect ( "persisted reverse handoff run" ) ;
424+ assert_eq ! (
425+ run. metadata_json[ "lab" ] [ "reverse_broker" ] [ "broker_url" ] ,
426+ "http://127.0.0.1:4321"
427+ ) ;
428+ assert_eq ! (
429+ run. metadata_json[ "lab" ] [ "reverse_broker" ] [ "job_id" ] ,
430+ job. id. to_string( )
431+ ) ;
432+ } ) ;
433+ }
434+
402435#[ test]
403436fn accepted_job_that_disappears_persists_a_terminal_controller_failure ( ) {
404437 homeboy_core:: test_support:: with_isolated_home ( |_| {
@@ -410,9 +443,15 @@ fn accepted_job_that_disappears_persists_a_terminal_controller_failure() {
410443 "runtime" . to_string( ) ,
411444 "refresh" . to_string( ) ,
412445 ] ;
413- let run_id =
414- persist_lab_offload_handoff_run ( & runner, "/srv/homeboy/project" , & command, & job, None )
415- . expect ( "accepted handoff mirror" ) ;
446+ let run_id = persist_lab_offload_handoff_run (
447+ & runner,
448+ "/srv/homeboy/project" ,
449+ & command,
450+ & job,
451+ None ,
452+ None ,
453+ )
454+ . expect ( "accepted handoff mirror" ) ;
416455
417456 let err = terminal_runner_poll_failure (
418457 & runner,
@@ -480,9 +519,15 @@ fn transient_daemon_transport_drop_keeps_the_durable_job_recoverable() {
480519 "runtime" . to_string( ) ,
481520 "refresh" . to_string( ) ,
482521 ] ;
483- let run_id =
484- persist_lab_offload_handoff_run ( & runner, "/srv/homeboy/project" , & command, & job, None )
485- . expect ( "accepted handoff mirror" ) ;
522+ let run_id = persist_lab_offload_handoff_run (
523+ & runner,
524+ "/srv/homeboy/project" ,
525+ & command,
526+ & job,
527+ None ,
528+ None ,
529+ )
530+ . expect ( "accepted handoff mirror" ) ;
486531
487532 // A transport-layer drop: the daemon endpoint became unreachable while
488533 // polling. This is the shape `runner_daemon_health_failure` classifies
0 commit comments