From f97304333b08cfb6c01bb7ad9c2c08c7078cd9c8 Mon Sep 17 00:00:00 2001 From: quambene Date: Wed, 20 Mar 2024 01:05:40 +0100 Subject: [PATCH] Fix dry run III --- src/bookmarks/bookmark_service.rs | 24 ++++++++---------------- src/bookmarks/mod.rs | 8 +++++++- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/bookmarks/bookmark_service.rs b/src/bookmarks/bookmark_service.rs index 953d7f1..8f48d73 100644 --- a/src/bookmarks/bookmark_service.rs +++ b/src/bookmarks/bookmark_service.rs @@ -112,7 +112,8 @@ where | RunMode::FetchAll | RunMode::FetchUrls(_) | RunMode::FetchDiff(_) - | RunMode::Update => { + | RunMode::Update + | RunMode::DryRun => { self.execute_actions(bookmark_manager).await?; self.add_underlyings(bookmark_manager); @@ -176,7 +177,7 @@ where RunMode::DryRun => { bookmark_manager .target_bookmarks_mut() - .set_action(&Action::None); + .set_action(&Action::DryRun); } RunMode::None => { bookmark_manager @@ -191,12 +192,6 @@ where Status::Removed => target_bookmark.set_action(Action::Remove), Status::Added | Status::None => (), } - } else { - match target_bookmark.status() { - Status::Removed => target_bookmark.set_action(Action::DryRun), - Status::Added => target_bookmark.set_action(Action::DryRun), - Status::None => (), - } } } @@ -211,8 +206,6 @@ where if self.config.run_mode != RunMode::DryRun { bookmark.set_action(Action::Remove); - } else { - bookmark.set_action(Action::DryRun); } } } @@ -232,7 +225,7 @@ where .filter(|bookmark| bookmark.action() != &Action::None) .collect::>(); - if bookmarks.len() == 0 { + if bookmarks.is_empty() { return Ok(()); } @@ -587,11 +580,10 @@ mod tests { let res = service.set_actions(&mut bookmark_manager, now); assert!(res.is_ok()); - - let bookmarks = bookmark_manager.target_bookmarks(); - assert_eq!(bookmarks.get(&url1).unwrap().action, Action::DryRun); - assert_eq!(bookmarks.get(&url2).unwrap().action, Action::DryRun); - assert_eq!(bookmarks.get(&url3).unwrap().action, Action::None); + assert!(bookmark_manager + .target_bookmarks() + .values() + .any(|bookmark| bookmark.action == Action::DryRun)); } #[tokio::test] diff --git a/src/bookmarks/mod.rs b/src/bookmarks/mod.rs index 77182ad..6233ba2 100644 --- a/src/bookmarks/mod.rs +++ b/src/bookmarks/mod.rs @@ -315,7 +315,13 @@ impl From<&TargetBookmarks> for JsonBookmarks { fn from(target_bookmarks: &TargetBookmarks) -> Self { let mut bookmarks = target_bookmarks .values() - .filter(|bookmark| bookmark.action() != &Action::DryRun) + .filter(|bookmark| { + if bookmark.action() == &Action::DryRun { + bookmark.status() == &Status::None + } else { + true + } + }) .map(JsonBookmark::from) .collect::>(); bookmarks.sort_by(Self::compare);