// Select the added file
update(
&mut state,
Msg::View(app::Msg::Cursor(cursor::Msg::Select(
cursor::Select::ChangedFile {
ix: 0,
path: file_to_record.to_string(),
},
))),
);
let _msg = task::await_next_msg(&mut tasks).await;
// Remove it to get it back into untracked files
let _task = update(&mut state, Msg::RmAddedFile);
// Wait for it to be rm'd
let msg = task::await_next_msg(&mut tasks).await;
assert_matches!(
&msg,
Msg::FromRepo(repo::MsgOut::RmedAddedFile { path }) if path == file_to_record
);
assert_eq!(state.repo.as_ref().unwrap().untracked_files.len(), 1);
assert!(state
.repo
.as_ref()
.unwrap()
.untracked_files
.contains(file_to_record));
assert!(state.repo.as_ref().unwrap().changed_files.is_empty());