Keep create_empty_workspace simple; restore cfg(test) gate on set_database_id

Richard Feldman created

Change summary

crates/sidebar/src/sidebar.rs           |  2 
crates/workspace/src/multi_workspace.rs | 29 ++++++++++++--------------
crates/workspace/src/workspace.rs       |  1 
3 files changed, 15 insertions(+), 17 deletions(-)

Detailed changes

crates/sidebar/src/sidebar.rs 🔗

@@ -1715,7 +1715,7 @@ impl Sidebar {
 
         if to_remove.len() == workspaces.len() {
             multi_workspace.update(cx, |multi_workspace, cx| {
-                multi_workspace.create_empty_workspace(window, cx).detach();
+                multi_workspace.create_empty_workspace(window, cx);
             });
         }
 

crates/workspace/src/multi_workspace.rs 🔗

@@ -741,11 +741,7 @@ impl MultiWorkspace {
         workspace
     }
 
-    pub fn create_empty_workspace(
-        &mut self,
-        window: &mut Window,
-        cx: &mut Context<Self>,
-    ) -> Task<()> {
+    pub fn create_empty_workspace(&mut self, window: &mut Window, cx: &mut Context<Self>) {
         let app_state = self.workspace().read(cx).app_state().clone();
         let project = Project::local(
             app_state.client.clone(),
@@ -758,9 +754,19 @@ impl MultiWorkspace {
             cx,
         );
         let new_workspace = cx.new(|cx| Workspace::new(None, project, app_state, window, cx));
-        self.activate(new_workspace.clone(), window, cx);
+        self.activate(new_workspace, window, cx);
+    }
 
-        let weak_workspace = new_workspace.downgrade();
+    #[cfg(any(test, feature = "test-support"))]
+    pub fn create_test_workspace(
+        &mut self,
+        window: &mut Window,
+        cx: &mut Context<Self>,
+    ) -> Task<()> {
+        self.create_empty_workspace(window, cx);
+
+        let workspace = self.workspace().clone();
+        let weak_workspace = workspace.downgrade();
         let db = crate::persistence::WorkspaceDb::global(cx);
         cx.spawn_in(window, async move |this, cx| {
             let workspace_id = db.next_id().await.unwrap();
@@ -785,15 +791,6 @@ impl MultiWorkspace {
         })
     }
 
-    #[cfg(any(test, feature = "test-support"))]
-    pub fn create_test_workspace(
-        &mut self,
-        window: &mut Window,
-        cx: &mut Context<Self>,
-    ) -> Task<()> {
-        self.create_empty_workspace(window, cx)
-    }
-
     pub fn remove(
         &mut self,
         workspace: &Entity<Workspace>,

crates/workspace/src/workspace.rs 🔗

@@ -6290,6 +6290,7 @@ impl Workspace {
         self.database_id
     }
 
+    #[cfg(any(test, feature = "test-support"))]
     pub(crate) fn set_database_id(&mut self, id: WorkspaceId) {
         self.database_id = Some(id);
     }