:art:

Antonio Scandurra created

Change summary

crates/collab/src/db.rs  | 14 +++++---------
crates/collab/src/rpc.rs |  2 +-
2 files changed, 6 insertions(+), 10 deletions(-)

Detailed changes

crates/collab/src/db.rs 🔗

@@ -49,6 +49,7 @@ impl BeginTransaction for Db<sqlx::Postgres> {
 }
 
 // In Sqlite, transactions are inherently serializable.
+#[cfg(test)]
 impl BeginTransaction for Db<sqlx::Sqlite> {
     type Database = sqlx::Sqlite;
 
@@ -1141,10 +1142,7 @@ where
         .await
     }
 
-    pub async fn leave_room_for_connection(
-        &self,
-        connection_id: ConnectionId,
-    ) -> Result<Option<LeftRoom>> {
+    pub async fn leave_room(&self, connection_id: ConnectionId) -> Result<Option<LeftRoom>> {
         self.transact(|mut tx| async move {
             // Leave room.
             let room_id = sqlx::query_scalar::<_, RoomId>(
@@ -1498,8 +1496,7 @@ where
             .bind(user_id)
             .bind(connection_id.0 as i32)
             .fetch_one(&mut tx)
-            .await
-            .unwrap();
+            .await?;
 
             if !worktrees.is_empty() {
                 let mut params = "(?, ?, ?, ?, ?, ?, ?),".repeat(worktrees.len());
@@ -1530,7 +1527,7 @@ where
                         .bind(0)
                         .bind(false);
                 }
-                query.execute(&mut tx).await.unwrap();
+                query.execute(&mut tx).await?;
             }
 
             sqlx::query(
@@ -1551,8 +1548,7 @@ where
             .bind(0)
             .bind(true)
             .execute(&mut tx)
-            .await
-            .unwrap();
+            .await?;
 
             let room = self.commit_room_transaction(room_id, tx).await?;
             Ok((project_id, room))

crates/collab/src/rpc.rs 🔗

@@ -629,7 +629,7 @@ impl Server {
     ) -> Result<()> {
         let mut contacts_to_update = HashSet::default();
 
-        let Some(left_room) = self.app_state.db.leave_room_for_connection(leaving_connection_id).await? else {
+        let Some(left_room) = self.app_state.db.leave_room(leaving_connection_id).await? else {
             return Err(anyhow!("no room to leave"))?;
         };
         contacts_to_update.insert(leaving_user_id);