update tests
[?]
Aug 8, 2025, 2:45 PM
WH57EHNML4OTGQQZBT2SG6SOFTBOD6OJPJYHJVGPH22CSSOE25AACDependencies
- [2]
OPXFZKEBview tests setup - [3]
3QVNMRNMtest non-empty repo app view - [4]
MYGIBRRHwip custom theme - [5]
XSZZB47Urefactor stuff into lib - [6]
3BK22XE5add a test for hover btn and more refactors - [7]
WGID4LS4absolutely slayed testing with iced task - [8]
VCNKFNUFapp init test - [9]
ACDXXAX2refactor main's updates into smaller fns - [10]
I56UGW7Umake record test, fix log update - [11]
X6AK4QPXfinish recording test - [12]
KMB6FND3test view update fn rather than direct fn calls - [13]
YYKXNBFLtest: add untracked file - [14]
ESMM3FELtest selection reindexing - [15]
TSFQFCB2test got repo change - [16]
UF5NJKAStest load repo - [17]
SWDPAGF6test channel name - [18]
OC6DLIZ3test record when nothing to record - [19]
I2AG42PAnew cols layout - [20]
SASAN2XCuse nav-scrollable - [21]
YKHE3XMWrefactor diffs handling - [22]
KEPKF3WOunify diffs handling, simplify view - [23]
KWTBNTO3diffs selection and scrolling - [24]
5MUEECMJsmooth scrolling nav - [25]
PTWZYQFRuse nav-scrollable for repo status - [26]
UR4J677Rnav for log changes and refactors - [27]
A6Z4O6RCactions menu - [28]
JZXYSIYDchannel selection! - [29]
OJPGHVC3entire log! - [30]
ZIUHKVJKupdate tests - [31]
3XRG4BB6rewritten nav-scrollable! - [32]
WAOGSCOJvery nice refactor, wip adding channels logs - [33]
PKJCFSBMtheme improvements - [34]
3TLPJ57Balt scroll via context and couple fixes - [35]
5CYU7UT7test: rm added file - [*]
23SFYK4Qbig view refactor into a new crate - [*]
WT3GA27Padd cursor with selection - [*]
6YZAVBWUInitial commit
Change contents
- replacement in libflorescence/src/repo/test.rs at line 62
log,short_log, - replacement in libflorescence/src/repo/test.rs at line 77
assert_eq!(log.len(), 2);assert_eq!(short_log.len(), 2); - edit in libflorescence/src/diff.rs at line 9
/// [`File`] is not part of [`State`] so it can be stored separately (i.e. in a/// cache, where it's immutable once set, unlike [`State`] which can change via/// user action) - replacement in inflorescence_view/src/app.rs at line 450
selection::Unified::EntireLog(log_change) => match log_change {Some(selection::LogChange {file:Some(selection::LogChangeFileSelection {diff_selected, ..}),..}) => !*diff_selected,_ => false,},selection::Unified::EntireLog(Some(selection::LogChange {file: Some(selection::LogChangeFileSelection { diff_selected, .. }),..})) => !*diff_selected, - replacement in inflorescence_view/src/app.rs at line 981
fn action_state<'a>(state: &'a ReadyState) -> ActionState {fn action_state(state: &ReadyState) -> ActionState { - replacement in inflorescence_view/src/app.rs at line 1167
return ActionState::SelectingChannel(sub_state);ActionState::SelectingChannel(sub_state) - replacement in inflorescence_view/src/app.rs at line 1174
return match file {match file { - replacement in inflorescence_view/src/app.rs at line 1200
};} - replacement in inflorescence_view/src/app/test.rs at line 1
use super::{view, Repo, State, StatusSelection};use super::view; - replacement in inflorescence_view/src/app/test.rs at line 6
use iced_expl_widget::nav_scrollable;use inflorescence_model::{selection, ReadyState, State, SubState};use libflorescence::identity::Id;use libflorescence::prelude::*; - edit in inflorescence_view/src/app/test.rs at line 27
let mresults = &mut results;let view = |state| view(state, |_id| None, window_id); - edit in inflorescence_view/src/app/test.rs at line 36[2.4779]→[2.4779:4800](∅→∅),[24.694]→[2.4852:4879](∅→∅),[2.4852]→[2.4852:4879](∅→∅),[2.4953]→[2.4953:4954](∅→∅)
let repo = None;let record_msg = None; - replacement in inflorescence_view/src/app/test.rs at line 38[19.4216]→[2.4978:5038](∅→∅),[2.4978]→[2.4978:5038](∅→∅),[2.5063]→[2.5063:5104](∅→∅),[2.5104]→[28.9952:10017](∅→∅),[28.10017]→[30.485:521](∅→∅)
repo_path: &repo_path,repo: repo.as_ref(),record_msg: record_msg.as_ref(),status_selection: None,channel_selection: None,entire_log_selection: None,repo_path: repo_path.clone(),sub: SubState::Loading {user_ids: vec![],repo: None,}, - replacement in inflorescence_view/src/app/test.rs at line 44
test_view(&mut results, uniq_name, view(state, window_id), size);test_view(mresults, uniq_name, view(&state), size); - replacement in inflorescence_view/src/app/test.rs at line 51
let repo_state = repo::State {let repo = repo::State { - replacement in inflorescence_view/src/app/test.rs at line 57
log: vec![],short_log: vec![],};let ready_state = ReadyState {user_id: Id::default().unwrap(),repo,selection: default(),navigation: default(),record_msg: default(),logs: default(),forking_channel_name: default(), - edit in inflorescence_view/src/app/test.rs at line 68[25.2379]→[31.5120:5175](∅→∅),[31.5175]→[25.2540:2614](∅→∅),[25.2540]→[25.2540:2614](∅→∅),[25.2614]→[28.10051:10085](∅→∅),[28.10085]→[32.29463:29499](∅→∅),[32.29499]→[30.553:579](∅→∅),[30.553]→[30.553:579](∅→∅),[30.579]→[3.96:104](∅→∅),[25.2614]→[3.96:104](∅→∅),[28.10085]→[3.96:104](∅→∅),[2.5629]→[3.96:104](∅→∅)
let status_nav = nav_scrollable::State::default();let repo = Some(Repo {state: repo_state,status_nav,switching_channel: false,forking_channel_name: None,entire_log: None,}); - replacement in inflorescence_view/src/app/test.rs at line 70[19.4251]→[3.128:188](∅→∅),[3.128]→[3.128:188](∅→∅),[3.213]→[3.213:254](∅→∅),[3.254]→[28.10086:10151](∅→∅),[28.10151]→[30.580:616](∅→∅)
repo_path: &repo_path,repo: repo.as_ref(),record_msg: record_msg.as_ref(),status_selection: None,channel_selection: None,entire_log_selection: None,repo_path: repo_path.clone(),sub: SubState::Ready(ready_state), - replacement in inflorescence_view/src/app/test.rs at line 73
test_view(&mut results, uniq_name, view(state, window_id), size);test_view(mresults, uniq_name, view(&state), size); - replacement in inflorescence_view/src/app/test.rs at line 80
let repo_state = repo::State {let repo = repo::State { - replacement in inflorescence_view/src/app/test.rs at line 95
log: vec![repo::LogEntry {short_log: vec![repo::LogEntry { - replacement in inflorescence_view/src/app/test.rs at line 101[25.2658]→[31.5176:5231](∅→∅),[31.5231]→[25.2819:2893](∅→∅),[25.2819]→[25.2819:2893](∅→∅),[25.2893]→[30.617:651](∅→∅),[30.651]→[32.29500:29536](∅→∅),[32.29536]→[30.682:708](∅→∅),[30.682]→[30.682:708](∅→∅),[30.708]→[2.5629:5637](∅→∅),[3.1560]→[2.5629:5637](∅→∅),[25.2893]→[2.5629:5637](∅→∅),[2.5629]→[2.5629:5637](∅→∅)
let status_nav = nav_scrollable::State::default();let repo = Some(Repo {state: repo_state,status_nav,switching_channel: false,forking_channel_name: None,entire_log: None,});let ready_state = ReadyState {user_id: Id::default().unwrap(),repo: repo.clone(),selection: default(),navigation: default(),record_msg: default(),logs: default(),forking_channel_name: default(),}; - replacement in inflorescence_view/src/app/test.rs at line 112[19.4286]→[4.8299:8359](∅→∅),[4.8299]→[4.8299:8359](∅→∅),[4.8384]→[4.8384:8425](∅→∅),[4.8425]→[28.10185:10250](∅→∅),[28.10250]→[30.709:745](∅→∅)
repo_path: &repo_path,repo: repo.as_ref(),record_msg: record_msg.as_ref(),status_selection: None,channel_selection: None,entire_log_selection: None,repo_path: repo_path.clone(),sub: SubState::Ready(ready_state), - replacement in inflorescence_view/src/app/test.rs at line 115
test_view(&mut results, uniq_name, view(state, window_id), size);test_view(mresults, uniq_name, view(&state), size); - replacement in inflorescence_view/src/app/test.rs at line 122[6.1283]→[6.1283:1307](∅→∅),[6.1307]→[19.4287:4321](∅→∅),[19.4321]→[6.1307:1367](∅→∅),[6.1307]→[6.1307:1367](∅→∅),[6.1392]→[6.1392:1433](∅→∅),[6.1433]→[28.10251:10316](∅→∅),[28.10316]→[30.746:782](∅→∅),[30.782]→[6.1468:1501](∅→∅),[21.2609]→[6.1468:1501](∅→∅),[26.8040]→[6.1468:1501](∅→∅),[28.10316]→[6.1468:1501](∅→∅),[6.1468]→[6.1468:1501](∅→∅),[6.1501]→[4.8482:8523](∅→∅),[4.8482]→[4.8482:8523](∅→∅),[4.8523]→[22.2797:2829](∅→∅),[22.2829]→[4.8574:8588](∅→∅),[4.8574]→[4.8574:8588](∅→∅),[4.8588]→[6.1502:1655](∅→∅),[6.1655]→[4.8588:8595](∅→∅),[4.8588]→[4.8588:8595](∅→∅)
let state = State {window_size: WINDOW_SIZE,repo_path: &repo_path,repo: repo.as_ref(),record_msg: record_msg.as_ref(),status_selection: None,channel_selection: None,entire_log_selection: None,};test_view_change_sim(&mut results,uniq_name,view(state, window_id),size,|sim| {let target = sim.find(selector::text("untracked.rs")).unwrap();sim.point_at(target.bounds.center());},);test_view_change_sim(&mut results, uniq_name, view(&state), size, |sim| {let target = sim.find(selector::text("untracked.rs")).unwrap();sim.point_at(target.bounds.center());}); - replacement in inflorescence_view/src/app/test.rs at line 131
let status_selection = Some(StatusSelection::UntrackedFile {let status_selection = Some(selection::Status::UntrackedFile { - replacement in inflorescence_view/src/app/test.rs at line 133
path: "",diff: None,path: "".to_string(),diff_selected: false, - edit in inflorescence_view/src/app/test.rs at line 136
let ready_state = ReadyState {user_id: Id::default().unwrap(),repo,selection: selection::State {status: status_selection,..default()},navigation: default(),record_msg: default(),logs: default(),forking_channel_name: default(),}; - replacement in inflorescence_view/src/app/test.rs at line 150[19.4356]→[2.5661:5721](∅→∅),[2.5661]→[2.5661:5721](∅→∅),[2.5746]→[2.5746:5787](∅→∅),[2.5787]→[28.10383:10442](∅→∅),[28.10442]→[30.783:819](∅→∅)
repo_path: &repo_path,repo: repo.as_ref(),record_msg: record_msg.as_ref(),status_selection,channel_selection: None,entire_log_selection: None,repo_path: repo_path.clone(),sub: SubState::Ready(ready_state), - replacement in inflorescence_view/src/app/test.rs at line 153
test_view(&mut results, uniq_name, view(state, window_id), size);test_view(&mut results, uniq_name, view(&state), size); - edit in inflorescence_model/src/lib.rs at line 35
#[allow(clippy::large_enum_variant,reason = "There's only ever 1 instance and the small sized cases are expected to always turn into the largest `Ready` case")] - replacement in inflorescence/src/test.rs at line 5
use iced_utils::task::{self, await_next_msg};use iced_utils::Task;use inflorescence_model::{ReadyState, RecordMsg, SubState}; - edit in inflorescence/src/test.rs at line 16
use iced_utils::task::{self, await_next_msg};use iced_utils::Task; - replacement in inflorescence/src/test.rs at line 33
assert_eq!(state.repo_path, repo_path);assert_eq!(state.sub.repo_path, repo_path); - replacement in inflorescence/src/test.rs at line 80
assert_eq!(state.repo.as_ref().unwrap().state.log.len(),INITIAL_LOG_LEN);{let ready_state = get_ready_state(&state);assert_eq!(ready_state.repo.short_log.len(), INITIAL_LOG_LEN);} - replacement in inflorescence/src/test.rs at line 105
assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Refreshed(_)));assert_matches!(&msg,Msg::FromRepo(repo::MsgOut::Refreshed {invalidate_logs: true,..})); - replacement in inflorescence/src/test.rs at line 139
assert!(state.record_msg.is_some());{let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());} - edit in inflorescence/src/test.rs at line 151
);assert!(state.record_msg.is_some());assert_matches!(state.record_msg.as_ref().unwrap(),app::RecordMsg::Typing(_) - edit in inflorescence/src/test.rs at line 152
if let app::RecordMsg::Typing(content) = state.record_msg.as_ref().unwrap() - replacement in inflorescence/src/test.rs at line 153
assert_eq!(&content.text(), record_msg);let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());assert_matches!(ready_state.record_msg.as_ref().unwrap(),RecordMsg::Typing(_));if let RecordMsg::Typing(content) =ready_state.record_msg.as_ref().unwrap(){assert_eq!(&content.text(), record_msg);} - replacement in inflorescence/src/test.rs at line 169
assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Recorded(_)));assert_matches!(&msg,Msg::FromRepo(repo::MsgOut::Refreshed {invalidate_logs: true,..})); - replacement in inflorescence/src/test.rs at line 179
assert_eq!(state.repo.as_ref().unwrap().state.log.len(),INITIAL_LOG_LEN + 1);{let ready_state = get_ready_state(&state);assert_eq!(ready_state.repo.short_log.len(), INITIAL_LOG_LEN + 1);} - replacement in inflorescence/src/test.rs at line 204
assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Refreshed(_)));assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Refreshed { .. })); - replacement in inflorescence/src/test.rs at line 208[11.899]→[30.826:900](∅→∅),[30.900]→[11.968:1025](∅→∅),[27.10494]→[11.968:1025](∅→∅),[28.10724]→[11.968:1025](∅→∅),[11.968]→[11.968:1025](∅→∅),[11.1025]→[23.7455:7485](∅→∅),[23.7485]→[11.1025:1033](∅→∅),[11.1025]→[11.1025:1033](∅→∅)
state.selection.view.status = Some(selection::Status::UntrackedFile {ix: 0,path: file_to_record.to_string(),diff_selected: false,});{let ready_state = get_ready_state_mut(&mut state);ready_state.selection.status = Some(selection::Status::UntrackedFile {ix: 0,path: file_to_record.to_string(),diff_selected: false,});} - replacement in inflorescence/src/test.rs at line 229
assert!(state.record_msg.is_some());{let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());} - edit in inflorescence/src/test.rs at line 242
assert!(state.record_msg.is_some());assert_matches!(state.record_msg.as_ref().unwrap(),app::RecordMsg::Typing(_));if let app::RecordMsg::Typing(content) = state.record_msg.as_ref().unwrap() - replacement in inflorescence/src/test.rs at line 243
assert_eq!(&content.text(), record_msg);let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());assert_matches!(ready_state.record_msg.as_ref().unwrap(),RecordMsg::Typing(_));if let RecordMsg::Typing(content) =ready_state.record_msg.as_ref().unwrap(){assert_eq!(&content.text(), record_msg);} - replacement in inflorescence/src/test.rs at line 258
assert!(state.record_msg.is_none());{let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_none());} - replacement in inflorescence/src/test.rs at line 268
assert!(state.record_msg.is_some());{let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());} - edit in inflorescence/src/test.rs at line 281
assert!(state.record_msg.is_some());assert_matches!(state.record_msg.as_ref().unwrap(),app::RecordMsg::Typing(_));if let app::RecordMsg::Typing(content) = state.record_msg.as_ref().unwrap() - replacement in inflorescence/src/test.rs at line 282
assert_eq!(&content.text(), record_msg);let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());assert_matches!(ready_state.record_msg.as_ref().unwrap(),RecordMsg::Typing(_));if let RecordMsg::Typing(content) =ready_state.record_msg.as_ref().unwrap(){assert_eq!(&content.text(), record_msg);} - replacement in inflorescence/src/test.rs at line 297
assert!(state.record_msg.is_some());assert_matches!(state.record_msg.as_ref().unwrap(),app::RecordMsg::Canceled { old_msg } if old_msg == record_msg);{let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());assert_matches!(ready_state.record_msg.as_ref().unwrap(),RecordMsg::Canceled { old_msg } if old_msg == record_msg);} - replacement in inflorescence/src/test.rs at line 309[12.1360]→[11.3109:3256](∅→∅),[27.10930]→[11.3109:3256](∅→∅),[11.3109]→[11.3109:3256](∅→∅),[11.3256]→[19.4462:4526](∅→∅),[19.4526]→[11.3321:3328](∅→∅),[11.3321]→[11.3321:3328](∅→∅)
assert!(state.record_msg.is_some());assert!(state.record_msg.is_some());assert_matches!(state.record_msg.as_ref().unwrap(),app::RecordMsg::Typing(msg) if msg.text() == record_msg);{let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_some());assert!(ready_state.record_msg.is_some());assert_matches!(ready_state.record_msg.as_ref().unwrap(),RecordMsg::Typing(msg) if msg.text() == record_msg);} - replacement in inflorescence/src/test.rs at line 333
assert!(state.record_msg.is_none());{let ready_state = get_ready_state(&state);assert!(ready_state.record_msg.is_none());} - replacement in inflorescence/src/test.rs at line 352
let repo_state = &state.repo.as_ref().unwrap().state;let ready_state = get_ready_state(&state);let repo_state = &ready_state.repo; - replacement in inflorescence/src/test.rs at line 375
assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Refreshed(_)));assert_matches!(&msg,Msg::FromRepo(repo::MsgOut::Refreshed {invalidate_logs: true,..})); - replacement in inflorescence/src/test.rs at line 385
let repo_state = &state.repo.as_ref().unwrap().state;let ready_state = get_ready_state(&state);let repo_state = &ready_state.repo; - replacement in inflorescence/src/test.rs at line 417
let repo_state = &state.repo.as_ref().unwrap().state;let ready_state = get_ready_state(&state);let repo_state = &ready_state.repo; - replacement in inflorescence/src/test.rs at line 451
let repo_state = &state.repo.as_ref().unwrap().state;let ready_state = get_ready_state(&state);let repo_state = &ready_state.repo; - replacement in inflorescence/src/test.rs at line 480[14.1063]→[14.1063:1126](∅→∅),[14.1126]→[30.901:928](∅→∅),[30.928]→[14.1126:1187](∅→∅),[14.1126]→[14.1126:1187](∅→∅),[14.1187]→[25.4224:4269](∅→∅)
let repo::State {dir_name: _,channel: _,other_channels: _,untracked_files,changed_files,log,} = &state.repo.as_ref().unwrap().state;let SubState::Ready(ready_state) = &mut state.sub.sub else {panic!("Unexpected state: {:?}", state.sub)}; - replacement in inflorescence/src/test.rs at line 487
assert!(state.selection.view.status.is_none());assert!(ready_state.selection.status.is_none()); - replacement in inflorescence/src/test.rs at line 490
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 493
untracked_files,changed_files,log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 496
assert!(state.selection.view.status.is_none());assert!(ready_state.selection.status.is_none()); - replacement in inflorescence/src/test.rs at line 504
let untracked_files = BTreeSet::from_iter([ready_state.repo.untracked_files = BTreeSet::from_iter([ - replacement in inflorescence/src/test.rs at line 510
state.selection.view.status = Some(selection::Status::UntrackedFile {ready_state.selection.status = Some(selection::Status::UntrackedFile { - replacement in inflorescence/src/test.rs at line 516
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 519
&untracked_files,changed_files,log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 522
assert!(state.selection.view.status.is_some());assert!(ready_state.selection.status.is_some()); - replacement in inflorescence/src/test.rs at line 524
state.selection.view.status.as_ref().unwrap(),ready_state.selection.status.as_ref().unwrap(), - replacement in inflorescence/src/test.rs at line 544
state.selection.view.status = Some(selection::Status::UntrackedFile {ready_state.selection.status = Some(selection::Status::UntrackedFile { - replacement in inflorescence/src/test.rs at line 550
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 553
&untracked_files,changed_files,log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 556
assert!(state.selection.view.status.is_none());assert!(ready_state.selection.status.is_none()); - replacement in inflorescence/src/test.rs at line 565
let changed_files = repo::ChangedFiles::from_iter([ready_state.repo.changed_files = repo::ChangedFiles::from_iter([ - replacement in inflorescence/src/test.rs at line 574
state.selection.view.status = Some(selection::Status::ChangedFile {ready_state.selection.status = Some(selection::Status::ChangedFile { - replacement in inflorescence/src/test.rs at line 580
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 583
&untracked_files,&changed_files,log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 586
assert!(state.selection.view.status.is_some());assert!(ready_state.selection.status.is_some()); - replacement in inflorescence/src/test.rs at line 588
state.selection.view.status.as_ref().unwrap(),ready_state.selection.status.as_ref().unwrap(), - replacement in inflorescence/src/test.rs at line 610
state.selection.view.status = Some(selection::Status::ChangedFile {ready_state.selection.status = Some(selection::Status::ChangedFile { - replacement in inflorescence/src/test.rs at line 616
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 619
&untracked_files,&changed_files,log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 622
assert!(state.selection.view.status.is_some());assert!(ready_state.selection.status.is_some()); - replacement in inflorescence/src/test.rs at line 624
state.selection.view.status.as_ref().unwrap(),ready_state.selection.status.as_ref().unwrap(), - replacement in inflorescence/src/test.rs at line 635
state.selection.view.status = Some(selection::Status::ChangedFile {ready_state.selection.status = Some(selection::Status::ChangedFile { - replacement in inflorescence/src/test.rs at line 641
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 644
&untracked_files,&changed_files,log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 647
assert!(state.selection.view.status.is_none());assert!(ready_state.selection.status.is_none()); - replacement in inflorescence/src/test.rs at line 658
let log = vec![ready_state.repo.short_log = vec![ - replacement in inflorescence/src/test.rs at line 676
state.selection.view.status =ready_state.selection.status = - replacement in inflorescence/src/test.rs at line 684
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 687
&untracked_files,&changed_files,&log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 690
assert!(state.selection.view.status.is_some());assert!(ready_state.selection.status.is_some()); - replacement in inflorescence/src/test.rs at line 692
state.selection.view.status.as_ref().unwrap(),ready_state.selection.status.as_ref().unwrap(), - replacement in inflorescence/src/test.rs at line 703
state.selection.view.status = Some(selection::Status::UntrackedFile {ready_state.selection.status = Some(selection::Status::UntrackedFile { - replacement in inflorescence/src/test.rs at line 709
&mut state.selection,&ready_state.repo,&mut ready_state.selection, - replacement in inflorescence/src/test.rs at line 712
&untracked_files,&changed_files,&log,&ready_state.logs, - replacement in inflorescence/src/test.rs at line 715
assert!(state.selection.view.status.is_none());assert!(ready_state.selection.status.is_none()); - replacement in inflorescence/src/test.rs at line 739
assert!(state.selection.view.status.is_none());{let ready_state = get_ready_state(&state);assert!(ready_state.selection.status.is_none());} - replacement in inflorescence/src/test.rs at line 746
assert!(state.selection.view.status.is_none());{let ready_state = get_ready_state(&state);assert!(ready_state.selection.status.is_none());} - replacement in inflorescence/src/test.rs at line 754
state.selection.view.status =Some(selection::Status::LogChange(selection::LogChange {ix: 0,hash: change_hash_0,message: "".to_string(),file: None,}));{let ready_state = get_ready_state_mut(&mut state);ready_state.selection.status =Some(selection::Status::LogChange(selection::LogChange {ix: 0,hash: change_hash_0,message: "".to_string(),file: None,}));} - replacement in inflorescence/src/test.rs at line 767
assert!(state.selection.view.status.is_some());{let ready_state = get_ready_state(&state);assert!(ready_state.selection.status.is_some());} - replacement in inflorescence/src/test.rs at line 775
state.selection.view.status =Some(selection::Status::LogChange(selection::LogChange {ix: 0,hash: change_hash_1,message: "".to_string(),file: None,}));{let ready_state = get_ready_state_mut(&mut state);ready_state.selection.status =Some(selection::Status::LogChange(selection::LogChange {ix: 0,hash: change_hash_1,message: "".to_string(),file: None,}));} - replacement in inflorescence/src/test.rs at line 788
assert!(state.selection.view.status.is_some());{let ready_state = get_ready_state(&state);assert!(ready_state.selection.status.is_some());} - replacement in inflorescence/src/test.rs at line 814
assert!(state.repo.is_some());let ready_state = get_ready_state(&state); - replacement in inflorescence/src/test.rs at line 819
let log = &state.repo.as_ref().unwrap().state.log;let log = &ready_state.repo.short_log; - edit in inflorescence/src/test.rs at line 846[15.2216]
#[track_caller]fn get_ready_state(state: &State) -> &ReadyState {let SubState::Ready(ready_state) = &state.sub.sub else {panic!("Unexpected state: {:?}", state.sub.sub)};ready_state}#[track_caller]fn get_ready_state_mut(state: &mut State) -> &mut ReadyState {let state_dbg = format!("{:?}", state.sub.sub);let SubState::Ready(ready_state) = &mut state.sub.sub else {panic!("Unexpected state: {state_dbg}")};ready_state} - replacement in inflorescence/src/selection.rs at line 336
return task;task - replacement in inflorescence/src/selection.rs at line 664
return task;task - edit in inflorescence/src/main.rs at line 613
&& let Some(RecordMsg::Typing(msg)) = record_msg.as_ref() - replacement in inflorescence/src/main.rs at line 615
if let Some(RecordMsg::Typing(msg)) = record_msg.as_ref() {let msg = msg.text();if msg.trim().is_empty() {info!("Cannot record with an empty message");} else {// TODO: this call has CLI prompt - replace itlet (sk, _) = user_id.decrypt().unwrap();let sk = Arc::new(sk);state.repo_tx_in.send(repo::MsgIn::Record { msg, sk }).unwrap();let msg = msg.text();if msg.trim().is_empty() {info!("Cannot record with an empty message");} else {// TODO: this call has CLI prompt - replace itlet (sk, _) = user_id.decrypt().unwrap();let sk = Arc::new(sk);state.repo_tx_in.send(repo::MsgIn::Record { msg, sk }).unwrap(); - replacement in inflorescence/src/main.rs at line 627
// Reset most things*selection = selection::State::default();*record_msg = None;// Status view fieldsnavigation.files_diffs.diffs_nav = None;navigation.status_logs_navs.files_nav = None;navigation.status_logs_navs.diffs_nav = None;// Reset most things*selection = selection::State::default();*record_msg = None;// Status view fieldsnavigation.files_diffs.diffs_nav = None;navigation.status_logs_navs.files_nav = None;navigation.status_logs_navs.diffs_nav = None; - replacement in inflorescence/src/main.rs at line 635
repo.changed_files = repo::ChangedFiles::default();}repo.changed_files = repo::ChangedFiles::default(); - edit in inflorescence/src/main.rs at line 644
&& let Some(RecordMsg::Typing(msg)) = record_msg.as_ref() - replacement in inflorescence/src/main.rs at line 646
if let Some(RecordMsg::Typing(msg)) = record_msg.as_ref() {let old_msg = msg.text();*record_msg = if !old_msg.trim().is_empty() {Some(RecordMsg::Canceled { old_msg })} else {None};}let old_msg = msg.text();*record_msg = if !old_msg.trim().is_empty() {Some(RecordMsg::Canceled { old_msg })} else {None}; - edit in inflorescence/src/main.rs at line 659
&& let Some(RecordMsg::Typing(_msg)) = record_msg.as_ref() - replacement in inflorescence/src/main.rs at line 661
if let Some(RecordMsg::Typing(_msg)) = record_msg.as_ref() {*record_msg = None;}*record_msg = None; - replacement in iced_utils/src/task/mod.rs at line 86
Self {stream: Some(iced::futures::stream::StreamExt::boxed(select_all)),if select_all.is_empty() {Self::none()} else {Self {stream: Some(iced::futures::stream::StreamExt::boxed(select_all,)),}