File tree Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Original file line number Diff line number Diff line change @@ -788,6 +788,10 @@ where
788788 match self . focus {
789789 Focus :: Worktrees => {
790790 if self . worktrees . is_empty ( ) {
791+ if !super :: GLOBAL_ACTIONS . is_empty ( ) {
792+ self . focus = Focus :: GlobalActions ;
793+ self . global_action_selected = 0 ;
794+ }
791795 return ;
792796 }
793797 let next = match self . selected {
Original file line number Diff line number Diff line change @@ -628,3 +628,47 @@ fn up_with_no_worktrees_moves_to_global_actions() -> Result<()> {
628628
629629 Ok ( ( ) )
630630}
631+
632+ #[ test]
633+ fn down_with_no_worktrees_opens_create_dialog ( ) -> Result < ( ) > {
634+ let backend = TestBackend :: new ( 60 , 18 ) ;
635+ let terminal = Terminal :: new ( backend) ?;
636+ let events = StubEvents :: new ( vec ! [
637+ key( KeyCode :: Down ) ,
638+ key( KeyCode :: Enter ) ,
639+ char_key( 'n' ) ,
640+ char_key( 'e' ) ,
641+ char_key( 'w' ) ,
642+ key( KeyCode :: Tab ) ,
643+ key( KeyCode :: Tab ) ,
644+ key( KeyCode :: Enter ) ,
645+ key( KeyCode :: Enter ) ,
646+ ] ) ;
647+
648+ let worktrees = Vec :: new ( ) ;
649+ let command = InteractiveCommand :: new (
650+ terminal,
651+ events,
652+ PathBuf :: from ( "/tmp/worktrees" ) ,
653+ worktrees,
654+ vec ! [ String :: from( "main" ) ] ,
655+ Some ( String :: from ( "main" ) ) ,
656+ ) ;
657+
658+ let mut created = Vec :: new ( ) ;
659+ let result = command. run (
660+ |_, _| panic ! ( "remove should not be called" ) ,
661+ |name, base| {
662+ created. push ( ( name. to_string ( ) , base. map ( |b| b. to_string ( ) ) ) ) ;
663+ Ok ( ( ) )
664+ } ,
665+ ) ?;
666+
667+ assert_eq ! ( result, Some ( Selection :: Worktree ( String :: from( "new" ) ) ) ) ;
668+ assert_eq ! (
669+ created,
670+ vec![ ( String :: from( "new" ) , Some ( String :: from( "main" ) ) ) ]
671+ ) ;
672+
673+ Ok ( ( ) )
674+ }
You can’t perform that action at this time.
0 commit comments