add test for untracked files in stash bug (#130)

This commit is contained in:
Stephan Dilly 2020-06-15 23:40:09 +02:00
parent dd7880d650
commit 19db19b010
3 changed files with 32 additions and 5 deletions

View file

@ -71,7 +71,11 @@ pub(crate) fn get_commit_diff(
mod tests {
use super::get_commit_files;
use crate::{
sync::{commit, stage_add_file, tests::repo_init, CommitId},
error::Result,
sync::{
commit, stage_add_file, stash_save, tests::repo_init,
CommitId,
},
StatusItemType,
};
use std::{fs::File, io::Write, path::Path};
@ -98,4 +102,27 @@ mod tests {
assert_eq!(diff.len(), 1);
assert_eq!(diff[0].status, StatusItemType::New);
}
#[test]
fn test_stashed_untracked() -> Result<()> {
let file_path = Path::new("file1.txt");
let (_td, repo) = repo_init().unwrap();
let root = repo.path().parent().unwrap();
let repo_path = root.as_os_str().to_str().unwrap();
File::create(&root.join(file_path))?
.write_all(b"test file1 content")?;
let id = stash_save(repo_path, None, true, false)?;
//TODO: https://github.com/extrawurst/gitui/issues/130
// `get_commit_diff` actually needs to merge the regular diff
// and a third parent diff containing the untracked files
let _diff = get_commit_files(repo_path, id)?;
// assert_eq!(diff.len(), 1);
// assert_eq!(diff[0].status, StatusItemType::New);
Ok(())
}
}

View file

@ -74,7 +74,7 @@ pub fn stash_save(
message: Option<&str>,
include_untracked: bool,
keep_index: bool,
) -> Result<()> {
) -> Result<CommitId> {
scope_time!("stash_save");
let mut repo = repo(repo_path)?;
@ -90,9 +90,9 @@ pub fn stash_save(
options.insert(StashFlags::KEEP_INDEX)
}
repo.stash_save2(&sig, message, Some(options))?;
let id = repo.stash_save2(&sig, message, Some(options))?;
Ok(())
Ok(CommitId::new(id))
}
#[cfg(test)]

View file

@ -66,7 +66,7 @@ impl Component for StashMsgComponent {
self.options.stash_untracked,
self.options.keep_index,
) {
Ok(()) => {
Ok(_) => {
self.input.clear();
self.hide();