File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -516,6 +516,11 @@ where
516516 match self . focus {
517517 Focus :: Worktrees => {
518518 if self . worktrees . is_empty ( ) {
519+ if !super :: GLOBAL_ACTIONS . is_empty ( ) {
520+ self . focus = Focus :: GlobalActions ;
521+ self . global_action_selected =
522+ super :: GLOBAL_ACTIONS . len ( ) . saturating_sub ( 1 ) ;
523+ }
519524 return ;
520525 }
521526 if matches ! ( self . selected, Some ( 0 ) ) && !super :: GLOBAL_ACTIONS . is_empty ( ) {
Original file line number Diff line number Diff line change @@ -318,7 +318,7 @@ fn up_from_top_moves_to_global_actions() -> Result<()> {
318318
319319 let result = command. run ( |_| Ok ( ( ) ) , |_, _| Ok ( ( ) ) ) ?;
320320
321- assert_eq ! ( result, Some ( String :: from ( super :: REPO_ROOT_SELECTION ) ) ) ;
321+ assert_eq ! ( result, Some ( Selection :: RepoRoot ) ) ;
322322
323323 Ok ( ( ) )
324324}
@@ -351,3 +351,26 @@ fn up_from_top_after_tabbing_picks_last_global_action() -> Result<()> {
351351
352352 Ok ( ( ) )
353353}
354+
355+ #[ test]
356+ fn up_with_no_worktrees_moves_to_global_actions ( ) -> Result < ( ) > {
357+ let backend = TestBackend :: new ( 40 , 12 ) ;
358+ let terminal = Terminal :: new ( backend) ?;
359+ let events = StubEvents :: new ( vec ! [ key( KeyCode :: Up ) , key( KeyCode :: Enter ) ] ) ;
360+
361+ let worktrees = Vec :: new ( ) ;
362+ let command = InteractiveCommand :: new (
363+ terminal,
364+ events,
365+ PathBuf :: from ( "/tmp/worktrees" ) ,
366+ worktrees,
367+ vec ! [ String :: from( "main" ) ] ,
368+ Some ( String :: from ( "main" ) ) ,
369+ ) ;
370+
371+ let result = command. run ( |_| Ok ( ( ) ) , |_, _| Ok ( ( ) ) ) ?;
372+
373+ assert_eq ! ( result, Some ( Selection :: RepoRoot ) ) ;
374+
375+ Ok ( ( ) )
376+ }
You can’t perform that action at this time.
0 commit comments