@@ -5066,4 +5066,65 @@ mod tests {
50665066 "BUG FOUND: Project settings were overwritten when opening via command - original custom content was lost"
50675067 ) ;
50685068 }
5069+
5070+ #[ gpui:: test]
5071+ async fn test_prefer_focused_window ( cx : & mut gpui:: TestAppContext ) {
5072+ let app_state = init_test ( cx) ;
5073+ let paths = [ PathBuf :: from ( path ! ( "/dir/document.txt" ) ) ] ;
5074+
5075+ app_state
5076+ . fs
5077+ . as_fake ( )
5078+ . insert_tree (
5079+ path ! ( "/dir" ) ,
5080+ json ! ( {
5081+ "document.txt" : "Some of the documentation's content."
5082+ } ) ,
5083+ )
5084+ . await ;
5085+
5086+ let project_a = Project :: test ( app_state. fs . clone ( ) , [ Path :: new ( "/dir" ) ] , cx) . await ;
5087+ let window_a =
5088+ cx. add_window ( |window, cx| Workspace :: test_new ( project_a. clone ( ) , window, cx) ) ;
5089+
5090+ let project_b = Project :: test ( app_state. fs . clone ( ) , [ Path :: new ( "/dir" ) ] , cx) . await ;
5091+ let window_b =
5092+ cx. add_window ( |window, cx| Workspace :: test_new ( project_b. clone ( ) , window, cx) ) ;
5093+
5094+ let project_c = Project :: test ( app_state. fs . clone ( ) , [ Path :: new ( "/dir" ) ] , cx) . await ;
5095+ let window_c =
5096+ cx. add_window ( |window, cx| Workspace :: test_new ( project_c. clone ( ) , window, cx) ) ;
5097+
5098+ for window in vec ! [ window_a, window_b, window_c] {
5099+ let _ = cx. update_window ( * window, |_, window, _| {
5100+ window. activate_window ( ) ;
5101+ } ) ;
5102+
5103+ cx. update ( |cx| {
5104+ let open_options = OpenOptions {
5105+ prefer_focused_window : true ,
5106+ ..Default :: default ( )
5107+ } ;
5108+
5109+ workspace:: open_paths ( & paths, app_state. clone ( ) , open_options, cx)
5110+ } )
5111+ . await
5112+ . unwrap ( ) ;
5113+
5114+ cx. update_window ( * window, |_, window, _| assert ! ( window. is_window_active( ) ) )
5115+ . unwrap ( ) ;
5116+
5117+ let _ = window. read_with ( cx, |workspace, cx| {
5118+ let pane = workspace. active_pane ( ) . read ( cx) ;
5119+ let project_path = pane. active_item ( ) . unwrap ( ) . project_path ( cx) . unwrap ( ) ;
5120+
5121+ assert ! (
5122+ project_path
5123+ . path
5124+ . as_ref( )
5125+ . ends_with( rel_path( "document.txt" ) )
5126+ )
5127+ } ) ;
5128+ }
5129+ }
50695130}
0 commit comments