Fix error when worktree has no file extensions

Co-authored-by: Antonio Scandurra <me@as-cii.com>
This commit is contained in:
Max Brunsfeld 2022-06-21 11:01:24 -07:00
parent e88f115467
commit 30d75620f1

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;