@@ -510,9 +510,73 @@ pub fn validator_exit_defaults() {
510510 } ) ;
511511}
512512
513+ #[ test]
514+ pub fn validator_exit_exit_epoch_and_presign_flags ( ) {
515+ CommandLineTest :: validators_exit ( )
516+ . flag (
517+ "--validators" ,
518+ Some ( & format ! ( "{},{}" , EXAMPLE_PUBKEY_0 , EXAMPLE_PUBKEY_1 ) ) ,
519+ )
520+ . flag ( "--vc-token" , Some ( "./token.json" ) )
521+ . flag ( "--exit-epoch" , Some ( "1234567" ) )
522+ . flag ( "--presign" , None )
523+ . assert_success ( |config| {
524+ let expected = ExitConfig {
525+ vc_url : SensitiveUrl :: parse ( "http://localhost:5062" ) . unwrap ( ) ,
526+ vc_token_path : PathBuf :: from ( "./token.json" ) ,
527+ validators_to_exit : vec ! [
528+ PublicKeyBytes :: from_str( EXAMPLE_PUBKEY_0 ) . unwrap( ) ,
529+ PublicKeyBytes :: from_str( EXAMPLE_PUBKEY_1 ) . unwrap( ) ,
530+ ] ,
531+ beacon_url : None ,
532+ exit_epoch : Some ( Epoch :: new ( 1234567 ) ) ,
533+ presign : true ,
534+ } ;
535+ assert_eq ! ( expected, config) ;
536+ } ) ;
537+ }
538+
513539#[ test]
514540pub fn validator_exit_missing_validator_flag ( ) {
515541 CommandLineTest :: validators_exit ( )
516542 . flag ( "--vc-token" , Some ( "./token.json" ) )
517543 . assert_failed ( ) ;
518544}
545+
546+ #[ test]
547+ pub fn validator_exit_using_beacon_and_presign_flags ( ) {
548+ CommandLineTest :: validators_exit ( )
549+ . flag ( "--vc-token" , Some ( "./token.json" ) )
550+ . flag (
551+ "--validators" ,
552+ Some ( & format ! ( "{},{}" , EXAMPLE_PUBKEY_0 , EXAMPLE_PUBKEY_1 ) ) ,
553+ )
554+ . flag ( "--beacon-node" , Some ( "http://localhost:1001" ) )
555+ . flag ( "--presign" , None )
556+ . assert_failed ( ) ;
557+ }
558+
559+ #[ test]
560+ pub fn validator_exit_using_beacon_and_exit_epoch_flags ( ) {
561+ CommandLineTest :: validators_exit ( )
562+ . flag ( "--vc-token" , Some ( "./token.json" ) )
563+ . flag (
564+ "--validators" ,
565+ Some ( & format ! ( "{},{}" , EXAMPLE_PUBKEY_0 , EXAMPLE_PUBKEY_1 ) ) ,
566+ )
567+ . flag ( "--beacon-node" , Some ( "http://localhost:1001" ) )
568+ . flag ( "--exit-epoch" , Some ( "1234567" ) )
569+ . assert_failed ( ) ;
570+ }
571+
572+ #[ test]
573+ pub fn validator_exit_exit_epoch_flag_requires_presign_flag ( ) {
574+ CommandLineTest :: validators_exit ( )
575+ . flag ( "--vc-token" , Some ( "./token.json" ) )
576+ . flag (
577+ "--validators" ,
578+ Some ( & format ! ( "{},{}" , EXAMPLE_PUBKEY_0 , EXAMPLE_PUBKEY_1 ) ) ,
579+ )
580+ . flag ( "--exit-epoch" , Some ( "1234567" ) )
581+ . assert_failed ( ) ;
582+ }
0 commit comments