@@ -1899,6 +1899,33 @@ mod tests {
[".zed.toml", "a.txt", "b.txt", "d.txt"]
);
});
+
+ project_b
+ .update(cx_b, |project, cx| {
+ project
+ .create_entry((worktree_id, "DIR"), true, cx)
+ .unwrap()
+ })
+ .await
+ .unwrap();
+ worktree_a.read_with(cx_a, |worktree, _| {
+ assert_eq!(
+ worktree
+ .paths()
+ .map(|p| p.to_string_lossy())
+ .collect::<Vec<_>>(),
+ [".zed.toml", "DIR", "a.txt", "b.txt", "d.txt"]
+ );
+ });
+ worktree_b.read_with(cx_b, |worktree, _| {
+ assert_eq!(
+ worktree
+ .paths()
+ .map(|p| p.to_string_lossy())
+ .collect::<Vec<_>>(),
+ [".zed.toml", "DIR", "a.txt", "b.txt", "d.txt"]
+ );
+ });
}
#[gpui::test(iterations = 10)]
@@ -3829,12 +3829,8 @@ impl Project {
.ok_or_else(|| anyhow!("worktree not found"))?;
worktree.update(cx, |worktree, cx| {
let worktree = worktree.as_local_mut().unwrap();
- if envelope.payload.is_directory {
- unimplemented!("can't yet create directories");
- } else {
- let path = PathBuf::from(OsString::from_vec(envelope.payload.path));
- anyhow::Ok(worktree.write_file(path, Default::default(), cx))
- }
+ let path = PathBuf::from(OsString::from_vec(envelope.payload.path));
+ anyhow::Ok(worktree.create_entry(path, envelope.payload.is_directory, cx))
})
})?
.await?;