Skip to content

Commit

Permalink
fix: Add temporary workaround for #39
Browse files Browse the repository at this point in the history
closes #39
  • Loading branch information
nesium committed Jan 21, 2024
1 parent 33d8a5a commit aaf147e
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,25 +64,25 @@ impl SidebarDomainServiceTrait for SidebarDomainService {
///
/// After processing all bookmarks, dispatches a `ClientEvent::SidebarChanged`.
async fn extend_items_from_bookmarks(&self, bookmarks: Vec<Bookmark>) -> Result<()> {
let mut delete_rooms_futures = vec![];
// let mut delete_rooms_futures = vec![];
let mut join_room_futures = vec![];
let mut update_bookmarks_futures = vec![];

let nickname = build_nickname(&self.ctx.connected_id()?.to_user_id());
let rooms = self.connected_rooms_repo.get_all();
let mut rooms_changed = false;

for room in rooms.iter() {
if bookmarks.iter().find(|b| b.jid == room.room_id).is_some() {
continue;
}
// Bookmark has been deleted…
let room = room.clone();
delete_rooms_futures.push(async move { self.disconnect_and_delete_room(&room).await });
rooms_changed = true;
}

join_all(delete_rooms_futures).await;
// for room in rooms.iter() {
// if bookmarks.iter().find(|b| b.jid == room.room_id).is_some() {
// continue;
// }
// // Bookmark has been deleted…
// let room = room.clone();
// delete_rooms_futures.push(async move { self.disconnect_and_delete_room(&room).await });
// rooms_changed = true;
// }
//
// join_all(delete_rooms_futures).await;

// Insert a pending room for each bookmark so that we're able to draw the sidebar
// before each room is connected.
Expand Down
96 changes: 48 additions & 48 deletions crates/prose-core-client/tests/sidebar_domain_service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,54 +93,54 @@ async fn test_extend_items_insert_items() -> Result<()> {
Ok(())
}

#[tokio::test]
async fn test_extend_items_removed_item() -> Result<()> {
let mut deps = MockSidebarDomainServiceDependencies::default();

let room1 = Room::public_channel(room_id!("[email protected]"))
.with_user_nickname("user-nickname")
.with_name("Channel 1")
.with_sidebar_state(RoomSidebarState::InSidebar);
let room2 = Room::public_channel(room_id!("[email protected]"))
.with_user_nickname("user-nickname")
.with_name("Channel 2")
.with_sidebar_state(RoomSidebarState::InSidebar);

{
let rooms = vec![room1.clone(), room2.clone()];
deps.connected_rooms_repo
.expect_get_all()
.once()
.return_once(|| rooms);
}

deps.room_management_service
.expect_exit_room()
.once()
.with(predicate::eq(occupant_id!(
"[email protected]/user-nickname"
)))
.return_once(|_| Box::pin(async { Ok(()) }));

deps.connected_rooms_repo
.expect_delete()
.once()
.with(predicate::eq(room_id!("[email protected]")))
.return_once(|_| Some(room1));

deps.client_event_dispatcher
.expect_dispatch_event()
.once()
.with(predicate::eq(ClientEvent::SidebarChanged))
.return_once(|_| ());

let service = SidebarDomainService::from(deps.into_deps());
service
.extend_items_from_bookmarks(vec![Bookmark::try_from(&room2).unwrap()])
.await?;

Ok(())
}
// #[tokio::test]
// async fn test_extend_items_removed_item() -> Result<()> {
// let mut deps = MockSidebarDomainServiceDependencies::default();
//
// let room1 = Room::public_channel(room_id!("[email protected]"))
// .with_user_nickname("user-nickname")
// .with_name("Channel 1")
// .with_sidebar_state(RoomSidebarState::InSidebar);
// let room2 = Room::public_channel(room_id!("[email protected]"))
// .with_user_nickname("user-nickname")
// .with_name("Channel 2")
// .with_sidebar_state(RoomSidebarState::InSidebar);
//
// {
// let rooms = vec![room1.clone(), room2.clone()];
// deps.connected_rooms_repo
// .expect_get_all()
// .once()
// .return_once(|| rooms);
// }
//
// deps.room_management_service
// .expect_exit_room()
// .once()
// .with(predicate::eq(occupant_id!(
// "[email protected]/user-nickname"
// )))
// .return_once(|_| Box::pin(async { Ok(()) }));
//
// deps.connected_rooms_repo
// .expect_delete()
// .once()
// .with(predicate::eq(room_id!("[email protected]")))
// .return_once(|_| Some(room1));
//
// deps.client_event_dispatcher
// .expect_dispatch_event()
// .once()
// .with(predicate::eq(ClientEvent::SidebarChanged))
// .return_once(|_| ());
//
// let service = SidebarDomainService::from(deps.into_deps());
// service
// .extend_items_from_bookmarks(vec![Bookmark::try_from(&room2).unwrap()])
// .await?;
//
// Ok(())
// }

#[tokio::test]
async fn test_handles_updated_bookmark() -> Result<()> {
Expand Down

0 comments on commit aaf147e

Please sign in to comment.