Compare only snapshot's essential state in random collaboration test

Antonio Scandurra created

Change summary

crates/project/src/worktree.rs |  4 ++--
crates/server/src/rpc.rs       | 16 +++++++++++++---
2 files changed, 15 insertions(+), 5 deletions(-)

Detailed changes

crates/project/src/worktree.rs 🔗

@@ -88,7 +88,7 @@ pub struct RemoteWorktree {
     pending_updates: VecDeque<proto::UpdateWorktree>,
 }
 
-#[derive(Clone, PartialEq, Eq)]
+#[derive(Clone)]
 pub struct Snapshot {
     id: WorktreeId,
     root_name: String,
@@ -1668,7 +1668,7 @@ impl sum_tree::Summary for EntrySummary {
     }
 }
 
-#[derive(Clone, Debug, PartialEq, Eq)]
+#[derive(Clone, Debug)]
 struct PathEntry {
     id: usize,
     path: Arc<Path>,

crates/server/src/rpc.rs 🔗

@@ -3682,11 +3682,21 @@ mod tests {
                 "guest {} has different worktrees than the host",
                 ix
             );
-            for (id, snapshot) in &host_worktree_snapshots {
+            for (id, host_snapshot) in &host_worktree_snapshots {
+                let guest_snapshot = &worktree_snapshots[id];
                 assert_eq!(
-                    worktree_snapshots[id], *snapshot,
+                    guest_snapshot.root_name(),
+                    host_snapshot.root_name(),
+                    "guest {} has different root name than the host for worktree {}",
+                    ix,
+                    id
+                );
+                assert_eq!(
+                    guest_snapshot.entries(false).collect::<Vec<_>>(),
+                    host_snapshot.entries(false).collect::<Vec<_>>(),
                     "guest {} has different snapshot than the host for worktree {}",
-                    ix, id
+                    ix,
+                    id
                 );
             }