Fix hangs in workspace tests

Max Brunsfeld created

Change summary

zed/src/file_finder.rs | 19 +++++++++++--------
zed/src/workspace.rs   |  2 +-
2 files changed, 12 insertions(+), 9 deletions(-)

Detailed changes

zed/src/file_finder.rs 🔗

@@ -640,16 +640,19 @@ mod tests {
             }));
             let settings = settings::channel(&app.font_cache()).unwrap().1;
 
-            let (_, workspace) = app.add_window(|ctx| {
-                let mut workspace = Workspace::new(0, settings.clone(), ctx);
-                smol::block_on(workspace.open_paths(
-                    &[tmp_dir.path().join("dir1"), tmp_dir.path().join("dir2")],
-                    ctx,
-                ));
-                workspace
-            });
+            let (_, workspace) = app.add_window(|ctx| Workspace::new(0, settings.clone(), ctx));
+
+            workspace
+                .update(&mut app, |workspace, ctx| {
+                    workspace.open_paths(
+                        &[tmp_dir.path().join("dir1"), tmp_dir.path().join("dir2")],
+                        ctx,
+                    )
+                })
+                .await;
             app.read(|ctx| workspace.read(ctx).worktree_scans_complete(ctx))
                 .await;
+
             let (_, finder) =
                 app.add_window(|ctx| FileFinder::new(settings, workspace.clone(), ctx));
 

zed/src/workspace.rs 🔗

@@ -685,7 +685,7 @@ mod tests {
 
             let (_, workspace) = app.add_window(|ctx| {
                 let mut workspace = Workspace::new(0, settings, ctx);
-                smol::block_on(workspace.open_paths(&[dir.path().into()], ctx));
+                workspace.open_path(dir.path().into(), ctx);
                 workspace
             });