Merge pull request #1214 from zed-industries/fix-error-on-empty-worktree-update

Fix error when worktree has no file extensions
This commit is contained in:
Antonio Scandurra
2022-06-21 20:08:20 +02:00
committed by GitHub
+29
View File
@@ -486,6 +486,10 @@ impl Db for PostgresDb {
worktree_id: u64,
extensions: HashMap<String, usize>,
) -> Result<()> {
if extensions.is_empty() {
return Ok(());
}
let mut query = QueryBuilder::new(
"INSERT INTO worktree_extensions (project_id, worktree_id, extension, count)",
);
@@ -1351,6 +1355,31 @@ pub mod tests {
assert_ne!(invite_code_4, invite_code_3);
}
#[tokio::test(flavor = "multi_thread")]
async fn test_worktree_extensions() {
let test_db = TestDb::postgres().await;
let db = test_db.db();
let user = db.create_user("user_1", None, false).await.unwrap();
let project = db.register_project(user).await.unwrap();
db.update_worktree_extensions(project, 100, Default::default()).await.unwrap();
db.update_worktree_extensions(project, 100, [("rs".to_string(), 5), ("md".to_string(), 3)].into_iter().collect()).await.unwrap();
db.update_worktree_extensions(project, 100, [("rs".to_string(), 6), ("md".to_string(), 5)].into_iter().collect()).await.unwrap();
db.update_worktree_extensions(project, 101, [("ts".to_string(), 2), ("md".to_string(), 1)].into_iter().collect()).await.unwrap();
assert_eq!(db.get_project_extensions(project).await.unwrap(), [
(100, [
("rs".into(), 6),
("md".into(), 5),
].into_iter().collect::<HashMap<_, _>>()),
(101, [
("ts".into(), 2),
("md".into(), 1),
].into_iter().collect::<HashMap<_, _>>())
].into_iter().collect());
}
#[tokio::test(flavor = "multi_thread")]
async fn test_project_activity() {
let test_db = TestDb::postgres().await;