update tests

[?]
Aug 8, 2025, 2:45 PM
WH57EHNML4OTGQQZBT2SG6SOFTBOD6OJPJYHJVGPH22CSSOE25AAC

Dependencies

Change contents

  • replacement in libflorescence/src/repo/test.rs at line 62
    [16.3612][16.3612:3625]()
    log,
    [16.3612]
    [16.3625]
    short_log,
  • replacement in libflorescence/src/repo/test.rs at line 77
    [16.4009][17.3209:3239]()
    assert_eq!(log.len(), 2);
    [16.4009]
    [16.4038]
    assert_eq!(short_log.len(), 2);
  • edit in libflorescence/src/diff.rs at line 9
    [5.577][5.577:754]()
    /// [`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
    [32.13834][32.13834:14184]()
    selection::Unified::EntireLog(log_change) => match log_change {
    Some(selection::LogChange {
    file:
    Some(selection::LogChangeFileSelection {
    diff_selected, ..
    }),
    ..
    }) => !*diff_selected,
    _ => false,
    },
    [32.13834]
    [29.5942]
    selection::Unified::EntireLog(Some(selection::LogChange {
    file: Some(selection::LogChangeFileSelection { diff_selected, .. }),
    ..
    })) => !*diff_selected,
  • replacement in inflorescence_view/src/app.rs at line 981
    [27.6142][32.21092:21152]()
    fn action_state<'a>(state: &'a ReadyState) -> ActionState {
    [27.6142]
    [32.21152]
    fn action_state(state: &ReadyState) -> ActionState {
  • replacement in inflorescence_view/src/app.rs at line 1167
    [27.7776][32.27966:28027]()
    return ActionState::SelectingChannel(sub_state);
    [27.7776]
    [32.28027]
    ActionState::SelectingChannel(sub_state)
  • replacement in inflorescence_view/src/app.rs at line 1174
    [32.28269][32.28269:28305]()
    return match file {
    [32.28269]
    [32.28305]
    match file {
  • replacement in inflorescence_view/src/app.rs at line 1200
    [32.29399][32.29399:29418]()
    };
    [32.29399]
    [27.8298]
    }
  • replacement in inflorescence_view/src/app/test.rs at line 1
    [2.4223][28.9902:9951]()
    use super::{view, Repo, State, StatusSelection};
    [2.4223]
    [6.932]
    use super::view;
  • replacement in inflorescence_view/src/app/test.rs at line 6
    [2.4320][31.5036:5074]()
    use iced_expl_widget::nav_scrollable;
    [2.4320]
    [5.5854]
    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
    [2.4596]
    [2.4596]
    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,
    [19.4216]
    [2.5139]
    repo_path: repo_path.clone(),
    sub: SubState::Loading {
    user_ids: vec![],
    repo: None,
    },
  • replacement in inflorescence_view/src/app/test.rs at line 44
    [2.5146][22.2584:2654]()
    test_view(&mut results, uniq_name, view(state, window_id), size);
    [2.5146]
    [2.5274]
    test_view(mresults, uniq_name, view(&state), size);
  • replacement in inflorescence_view/src/app/test.rs at line 51
    [2.5409][25.2336:2371]()
    let repo_state = repo::State {
    [2.5409]
    [2.5443]
    let repo = repo::State {
  • replacement in inflorescence_view/src/app/test.rs at line 57
    [2.5608][2.5608:5629]()
    log: vec![],
    [2.5608]
    [25.2372]
    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,
    [19.4251]
    [3.289]
    repo_path: repo_path.clone(),
    sub: SubState::Ready(ready_state),
  • replacement in inflorescence_view/src/app/test.rs at line 73
    [3.296][22.2655:2725]()
    test_view(&mut results, uniq_name, view(state, window_id), size);
    [3.296]
    [3.424]
    test_view(mresults, uniq_name, view(&state), size);
  • replacement in inflorescence_view/src/app/test.rs at line 80
    [3.563][25.2615:2650]()
    let repo_state = repo::State {
    [3.563]
    [3.597]
    let repo = repo::State {
  • replacement in inflorescence_view/src/app/test.rs at line 95
    [3.1387][3.1387:1422]()
    log: vec![repo::LogEntry {
    [3.1387]
    [26.7946]
    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,
    });
    [25.2658]
    [4.8275]
    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,
    [19.4286]
    [4.8460]
    repo_path: repo_path.clone(),
    sub: SubState::Ready(ready_state),
  • replacement in inflorescence_view/src/app/test.rs at line 115
    [4.8467][22.2726:2796]()
    test_view(&mut results, uniq_name, view(state, window_id), size);
    [4.8467]
    [6.1140]
    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());
    },
    );
    [6.1283]
    [4.8595]
    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
    [4.8738][28.10317:10382]()
    let status_selection = Some(StatusSelection::UntrackedFile {
    [4.8738]
    [27.10185]
    let status_selection = Some(selection::Status::UntrackedFile {
  • replacement in inflorescence_view/src/app/test.rs at line 133
    [27.10200][27.10200:10238]()
    path: "",
    diff: None,
    [27.10200]
    [27.10238]
    path: "".to_string(),
    diff_selected: false,
  • edit in inflorescence_view/src/app/test.rs at line 136
    [27.10246]
    [2.5637]
    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,
    [19.4356]
    [2.5822]
    repo_path: repo_path.clone(),
    sub: SubState::Ready(ready_state),
  • replacement in inflorescence_view/src/app/test.rs at line 153
    [2.5829][22.2830:2900]()
    test_view(&mut results, uniq_name, view(state, window_id), size);
    [2.5829]
    [2.5957]
    test_view(&mut results, uniq_name, view(&state), size);
  • edit in inflorescence_model/src/lib.rs at line 35
    [32.32404]
    [32.32404]
    #[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
    [15.140][20.2018:2086]()
    use iced_utils::task::{self, await_next_msg};
    use iced_utils::Task;
    [15.140]
    [10.1459]
    use inflorescence_model::{ReadyState, RecordMsg, SubState};
  • edit in inflorescence/src/test.rs at line 16
    [20.2118]
    [10.1646]
    use iced_utils::task::{self, await_next_msg};
    use iced_utils::Task;
  • replacement in inflorescence/src/test.rs at line 33
    [8.2848][8.2848:2892]()
    assert_eq!(state.repo_path, repo_path);
    [8.2848]
    [8.2892]
    assert_eq!(state.sub.repo_path, repo_path);
  • replacement in inflorescence/src/test.rs at line 80
    [18.97][25.2900:3001]()
    assert_eq!(
    state.repo.as_ref().unwrap().state.log.len(),
    INITIAL_LOG_LEN
    );
    [18.97]
    [10.2194]
    {
    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
    [10.2887][10.2887:2957]()
    assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Refreshed(_)));
    [10.2887]
    [10.2957]
    assert_matches!(
    &msg,
    Msg::FromRepo(repo::MsgOut::Refreshed {
    invalidate_logs: true,
    ..
    })
    );
  • replacement in inflorescence/src/test.rs at line 139
    [12.480][10.3525:3566](),[27.10419][10.3525:3566](),[10.3525][10.3525:3566]()
    assert!(state.record_msg.is_some());
    [27.10419]
    [10.3566]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.record_msg.is_some());
    }
  • edit in inflorescence/src/test.rs at line 151
    [10.3795][10.3795:3942]()
    );
    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
    [10.3949][10.3949:4029]()
    if let app::RecordMsg::Typing(content) = state.record_msg.as_ref().unwrap()
  • replacement in inflorescence/src/test.rs at line 153
    [10.4035][10.4035:4084]()
    assert_eq!(&content.text(), record_msg);
    [10.4035]
    [10.4084]
    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
    [10.4209][10.4209:4278]()
    assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Recorded(_)));
    [10.4209]
    [10.4278]
    assert_matches!(
    &msg,
    Msg::FromRepo(repo::MsgOut::Refreshed {
    invalidate_logs: true,
    ..
    })
    );
  • replacement in inflorescence/src/test.rs at line 179
    [10.4341][25.3002:3107]()
    assert_eq!(
    state.repo.as_ref().unwrap().state.log.len(),
    INITIAL_LOG_LEN + 1
    );
    [10.4341]
    [10.4488]
    {
    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
    [11.770][11.770:840]()
    assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Refreshed(_)));
    [11.770]
    [11.840]
    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,
    });
    [11.899]
    [11.1033]
    {
    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
    [12.772][11.1408:1449](),[27.10641][11.1408:1449](),[11.1408][11.1408:1449]()
    assert!(state.record_msg.is_some());
    [27.10641]
    [11.1449]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.record_msg.is_some());
    }
  • edit in inflorescence/src/test.rs at line 242
    [11.1684][11.1684:1911]()
    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
    [11.1917][11.1917:1966]()
    assert_eq!(&content.text(), record_msg);
    [11.1917]
    [11.1966]
    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
    [12.1012][11.2023:2064](),[27.10714][11.2023:2064](),[11.2023][11.2023:2064]()
    assert!(state.record_msg.is_none());
    [27.10714]
    [11.2064]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.record_msg.is_none());
    }
  • replacement in inflorescence/src/test.rs at line 268
    [12.1067][11.2177:2218](),[27.10785][11.2177:2218](),[11.2177][11.2177:2218]()
    assert!(state.record_msg.is_some());
    [27.10785]
    [11.2218]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.record_msg.is_some());
    }
  • edit in inflorescence/src/test.rs at line 281
    [11.2453][11.2453:2680]()
    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
    [11.2686][11.2686:2735]()
    assert_eq!(&content.text(), record_msg);
    [11.2686]
    [11.2735]
    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
    [12.1305][11.2796:2979](),[27.10859][11.2796:2979](),[11.2796][11.2796:2979]()
    assert!(state.record_msg.is_some());
    assert_matches!(
    state.record_msg.as_ref().unwrap(),
    app::RecordMsg::Canceled { old_msg } if old_msg == record_msg
    );
    [27.10859]
    [11.2979]
    {
    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
    );
    [27.10930]
    [10.4744]
    {
    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
    [18.630][18.630:671]()
    assert!(state.record_msg.is_none());
    [18.630]
    [18.671]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.record_msg.is_none());
    }
  • replacement in inflorescence/src/test.rs at line 352
    [25.3114][25.3114:3176]()
    let repo_state = &state.repo.as_ref().unwrap().state;
    [25.3114]
    [25.3176]
    let ready_state = get_ready_state(&state);
    let repo_state = &ready_state.repo;
  • replacement in inflorescence/src/test.rs at line 375
    [13.1151][13.1151:1221]()
    assert_matches!(&msg, Msg::FromRepo(repo::MsgOut::Refreshed(_)));
    [13.1151]
    [13.1221]
    assert_matches!(
    &msg,
    Msg::FromRepo(repo::MsgOut::Refreshed {
    invalidate_logs: true,
    ..
    })
    );
  • replacement in inflorescence/src/test.rs at line 385
    [25.3299][25.3299:3361]()
    let repo_state = &state.repo.as_ref().unwrap().state;
    [25.3299]
    [25.3361]
    let ready_state = get_ready_state(&state);
    let repo_state = &ready_state.repo;
  • replacement in inflorescence/src/test.rs at line 417
    [25.3555][25.3555:3617]()
    let repo_state = &state.repo.as_ref().unwrap().state;
    [25.3555]
    [25.3617]
    let ready_state = get_ready_state(&state);
    let repo_state = &ready_state.repo;
  • replacement in inflorescence/src/test.rs at line 451
    [25.3974][25.3974:4036]()
    let repo_state = &state.repo.as_ref().unwrap().state;
    [25.3974]
    [25.4036]
    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;
    [14.1063]
    [14.1226]
    let SubState::Ready(ready_state) = &mut state.sub.sub else {
    panic!("Unexpected state: {:?}", state.sub)
    };
  • replacement in inflorescence/src/test.rs at line 487
    [14.1343][28.10943:10995]()
    assert!(state.selection.view.status.is_none());
    [14.1343]
    [14.1390]
    assert!(ready_state.selection.status.is_none());
  • replacement in inflorescence/src/test.rs at line 490
    [14.1425][28.10996:11026]()
    &mut state.selection,
    [14.1425]
    [14.1452]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 493
    [14.1478][14.1478:1539]()
    untracked_files,
    changed_files,
    log,
    [14.1478]
    [14.1539]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 496
    [14.1547][28.11027:11079]()
    assert!(state.selection.view.status.is_none());
    [14.1547]
    [14.1594]
    assert!(ready_state.selection.status.is_none());
  • replacement in inflorescence/src/test.rs at line 504
    [13.2711][14.1842:1890]()
    let untracked_files = BTreeSet::from_iter([
    [13.2711]
    [14.1890]
    ready_state.repo.untracked_files = BTreeSet::from_iter([
  • replacement in inflorescence/src/test.rs at line 510
    [14.2013][30.929:1003]()
    state.selection.view.status = Some(selection::Status::UntrackedFile {
    [14.2013]
    [14.2082]
    ready_state.selection.status = Some(selection::Status::UntrackedFile {
  • replacement in inflorescence/src/test.rs at line 516
    [14.2183][28.11158:11188]()
    &mut state.selection,
    [14.2183]
    [14.2210]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 519
    [14.2236][14.2236:2298]()
    &untracked_files,
    changed_files,
    log,
    [14.2236]
    [14.2298]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 522
    [14.2306][28.11189:11241]()
    assert!(state.selection.view.status.is_some());
    [14.2306]
    [14.2353]
    assert!(ready_state.selection.status.is_some());
  • replacement in inflorescence/src/test.rs at line 524
    [14.2374][28.11242:11297]()
    state.selection.view.status.as_ref().unwrap(),
    [14.2374]
    [28.11297]
    ready_state.selection.status.as_ref().unwrap(),
  • replacement in inflorescence/src/test.rs at line 544
    [14.3093][30.1004:1078]()
    state.selection.view.status = Some(selection::Status::UntrackedFile {
    [14.3093]
    [14.3162]
    ready_state.selection.status = Some(selection::Status::UntrackedFile {
  • replacement in inflorescence/src/test.rs at line 550
    [14.3266][28.11445:11475]()
    &mut state.selection,
    [14.3266]
    [14.3293]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 553
    [14.3319][14.3319:3381]()
    &untracked_files,
    changed_files,
    log,
    [14.3319]
    [14.3381]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 556
    [14.3389][28.11476:11528]()
    assert!(state.selection.view.status.is_none());
    [14.3389]
    [14.3436]
    assert!(ready_state.selection.status.is_none());
  • replacement in inflorescence/src/test.rs at line 565
    [14.3719][14.3719:3775]()
    let changed_files = repo::ChangedFiles::from_iter([
    [14.3719]
    [14.3775]
    ready_state.repo.changed_files = repo::ChangedFiles::from_iter([
  • replacement in inflorescence/src/test.rs at line 574
    [14.4018][30.1079:1151]()
    state.selection.view.status = Some(selection::Status::ChangedFile {
    [14.4018]
    [14.4085]
    ready_state.selection.status = Some(selection::Status::ChangedFile {
  • replacement in inflorescence/src/test.rs at line 580
    [14.4184][28.11605:11635]()
    &mut state.selection,
    [14.4184]
    [14.4211]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 583
    [14.4237][14.4237:4300]()
    &untracked_files,
    &changed_files,
    log,
    [14.4237]
    [14.4300]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 586
    [14.4308][28.11636:11688]()
    assert!(state.selection.view.status.is_some());
    [14.4308]
    [14.4355]
    assert!(ready_state.selection.status.is_some());
  • replacement in inflorescence/src/test.rs at line 588
    [14.4376][28.11689:11744]()
    state.selection.view.status.as_ref().unwrap(),
    [14.4376]
    [28.11744]
    ready_state.selection.status.as_ref().unwrap(),
  • replacement in inflorescence/src/test.rs at line 610
    [14.5144][30.1152:1224]()
    state.selection.view.status = Some(selection::Status::ChangedFile {
    [14.5144]
    [14.5211]
    ready_state.selection.status = Some(selection::Status::ChangedFile {
  • replacement in inflorescence/src/test.rs at line 616
    [14.5310][28.11888:11918]()
    &mut state.selection,
    [14.5310]
    [14.5337]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 619
    [14.5363][14.5363:5426]()
    &untracked_files,
    &changed_files,
    log,
    [14.5363]
    [14.5426]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 622
    [14.5434][28.11919:11971]()
    assert!(state.selection.view.status.is_some());
    [14.5434]
    [14.5481]
    assert!(ready_state.selection.status.is_some());
  • replacement in inflorescence/src/test.rs at line 624
    [14.5502][28.11972:12027]()
    state.selection.view.status.as_ref().unwrap(),
    [14.5502]
    [28.12027]
    ready_state.selection.status.as_ref().unwrap(),
  • replacement in inflorescence/src/test.rs at line 635
    [14.5907][30.1225:1297]()
    state.selection.view.status = Some(selection::Status::ChangedFile {
    [14.5907]
    [14.5974]
    ready_state.selection.status = Some(selection::Status::ChangedFile {
  • replacement in inflorescence/src/test.rs at line 641
    [14.6076][28.12171:12201]()
    &mut state.selection,
    [14.6076]
    [14.6103]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 644
    [14.6129][14.6129:6192]()
    &untracked_files,
    &changed_files,
    log,
    [14.6129]
    [14.6192]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 647
    [14.6200][28.12202:12254]()
    assert!(state.selection.view.status.is_none());
    [14.6200]
    [14.6247]
    assert!(ready_state.selection.status.is_none());
  • replacement in inflorescence/src/test.rs at line 658
    [23.8495][14.6754:6774](),[14.6754][14.6754:6774]()
    let log = vec![
    [23.8495]
    [14.6774]
    ready_state.repo.short_log = vec![
  • replacement in inflorescence/src/test.rs at line 676
    [14.7196][30.1298:1332]()
    state.selection.view.status =
    [14.7196]
    [30.1332]
    ready_state.selection.status =
  • replacement in inflorescence/src/test.rs at line 684
    [14.7421][28.12329:12359]()
    &mut state.selection,
    [14.7421]
    [14.7448]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 687
    [14.7474][14.7474:7538]()
    &untracked_files,
    &changed_files,
    &log,
    [14.7474]
    [14.7538]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 690
    [14.7546][28.12360:12412]()
    assert!(state.selection.view.status.is_some());
    [14.7546]
    [14.7593]
    assert!(ready_state.selection.status.is_some());
  • replacement in inflorescence/src/test.rs at line 692
    [14.7614][28.12413:12468]()
    state.selection.view.status.as_ref().unwrap(),
    [14.7614]
    [30.1524]
    ready_state.selection.status.as_ref().unwrap(),
  • replacement in inflorescence/src/test.rs at line 703
    [14.8012][30.1601:1675]()
    state.selection.view.status = Some(selection::Status::UntrackedFile {
    [14.8012]
    [14.8081]
    ready_state.selection.status = Some(selection::Status::UntrackedFile {
  • replacement in inflorescence/src/test.rs at line 709
    [14.8179][28.12601:12631]()
    &mut state.selection,
    [14.8179]
    [14.8206]
    &ready_state.repo,
    &mut ready_state.selection,
  • replacement in inflorescence/src/test.rs at line 712
    [14.8232][14.8232:8296]()
    &untracked_files,
    &changed_files,
    &log,
    [14.8232]
    [14.8296]
    &ready_state.logs,
  • replacement in inflorescence/src/test.rs at line 715
    [14.8304][28.12632:12684]()
    assert!(state.selection.view.status.is_none());
    [14.8304]
    [14.8351]
    assert!(ready_state.selection.status.is_none());
  • replacement in inflorescence/src/test.rs at line 739
    [15.700][28.12685:12737]()
    assert!(state.selection.view.status.is_none());
    [15.700]
    [15.747]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.selection.status.is_none());
    }
  • replacement in inflorescence/src/test.rs at line 746
    [15.889][28.12738:12790]()
    assert!(state.selection.view.status.is_none());
    [15.889]
    [15.936]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.selection.status.is_none());
    }
  • replacement in inflorescence/src/test.rs at line 754
    [15.1053][30.1676:1901]()
    state.selection.view.status =
    Some(selection::Status::LogChange(selection::LogChange {
    ix: 0,
    hash: change_hash_0,
    message: "".to_string(),
    file: None,
    }));
    [15.1053]
    [15.1244]
    {
    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
    [15.1386][28.12865:12917]()
    assert!(state.selection.view.status.is_some());
    [15.1386]
    [15.1568]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.selection.status.is_some());
    }
  • replacement in inflorescence/src/test.rs at line 775
    [15.1692][30.1902:2127]()
    state.selection.view.status =
    Some(selection::Status::LogChange(selection::LogChange {
    ix: 0,
    hash: change_hash_1,
    message: "".to_string(),
    file: None,
    }));
    [15.1692]
    [15.1883]
    {
    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
    [31.5300][28.12992:13044](),[26.8102][28.12992:13044]()
    assert!(state.selection.view.status.is_some());
    [31.5300]
    [15.2210]
    {
    let ready_state = get_ready_state(&state);
    assert!(ready_state.selection.status.is_some());
    }
  • replacement in inflorescence/src/test.rs at line 814
    [10.5452][10.5452:5487]()
    assert!(state.repo.is_some());
    [10.5452]
    [10.5487]
    let ready_state = get_ready_state(&state);
  • replacement in inflorescence/src/test.rs at line 819
    [10.7001][25.4270:4325]()
    let log = &state.repo.as_ref().unwrap().state.log;
    [10.7001]
    [13.2712]
    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
    [32.44757][32.44757:44774]()
    return task;
    [32.44757]
    [32.44774]
    task
  • replacement in inflorescence/src/selection.rs at line 664
    [32.51002][32.51002:51019]()
    return task;
    [32.51002]
    [32.51019]
    task
  • edit in inflorescence/src/main.rs at line 613
    [32.89152]
    [32.89152]
    && let Some(RecordMsg::Typing(msg)) = record_msg.as_ref()
  • replacement in inflorescence/src/main.rs at line 615
    [32.89158][32.89158:89686]()
    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 it
    let (sk, _) = user_id.decrypt().unwrap();
    let sk = Arc::new(sk);
    state
    .repo_tx_in
    .send(repo::MsgIn::Record { msg, sk })
    .unwrap();
    [32.89158]
    [28.20404]
    let msg = msg.text();
    if msg.trim().is_empty() {
    info!("Cannot record with an empty message");
    } else {
    // TODO: this call has CLI prompt - replace it
    let (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
    [28.20405][32.89687:90037]()
    // Reset most things
    *selection = selection::State::default();
    *record_msg = None;
    // Status view fields
    navigation.files_diffs.diffs_nav = None;
    navigation.status_logs_navs.files_nav = None;
    navigation.status_logs_navs.diffs_nav = None;
    [28.20405]
    [28.20698]
    // Reset most things
    *selection = selection::State::default();
    *record_msg = None;
    // Status view fields
    navigation.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
    [28.20699][32.90038:90120]()
    repo.changed_files = repo::ChangedFiles::default();
    }
    [28.20699]
    [9.5800]
    repo.changed_files = repo::ChangedFiles::default();
  • edit in inflorescence/src/main.rs at line 644
    [32.90211]
    [32.90211]
    && let Some(RecordMsg::Typing(msg)) = record_msg.as_ref()
  • replacement in inflorescence/src/main.rs at line 646
    [32.90217][32.90217:90502]()
    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
    };
    }
    [32.90217]
    [9.6158]
    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
    [32.90593]
    [32.90593]
    && let Some(RecordMsg::Typing(_msg)) = record_msg.as_ref()
  • replacement in inflorescence/src/main.rs at line 661
    [32.90599][32.90599:90710]()
    if let Some(RecordMsg::Typing(_msg)) = record_msg.as_ref() {
    *record_msg = None;
    }
    [32.90599]
    [9.6337]
    *record_msg = None;
  • replacement in iced_utils/src/task/mod.rs at line 86
    [7.1736][7.1736:1830]()
    Self {
    stream: Some(iced::futures::stream::StreamExt::boxed(select_all)),
    [7.1736]
    [7.1830]
    if select_all.is_empty() {
    Self::none()
    } else {
    Self {
    stream: Some(iced::futures::stream::StreamExt::boxed(
    select_all,
    )),
    }