mirror of
https://github.com/martinvonz/jj.git
synced 2025-05-05 23:42:50 +00:00
merge-tools: builtin: extract wrapper functions in tests
make_diff_files() will be async function that uses materialized_diff_stream() internally. apply_diff_builtin() will take callbacks to handle binary/conflict files.
This commit is contained in:
parent
1cdd79071e
commit
9c723a1c76
@ -627,6 +627,32 @@ mod tests {
|
|||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
fn make_diff(
|
||||||
|
store: &Arc<Store>,
|
||||||
|
left_tree: &MergedTree,
|
||||||
|
right_tree: &MergedTree,
|
||||||
|
changed_files: &[RepoPathBuf],
|
||||||
|
) -> Vec<scm_record::File<'static>> {
|
||||||
|
make_diff_files(
|
||||||
|
store,
|
||||||
|
left_tree,
|
||||||
|
right_tree,
|
||||||
|
changed_files,
|
||||||
|
ConflictMarkerStyle::Diff,
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn apply_diff(
|
||||||
|
store: &Arc<Store>,
|
||||||
|
left_tree: &MergedTree,
|
||||||
|
right_tree: &MergedTree,
|
||||||
|
changed_files: &[RepoPathBuf],
|
||||||
|
files: &[scm_record::File],
|
||||||
|
) -> MergedTreeId {
|
||||||
|
apply_diff_builtin(store, left_tree, right_tree, changed_files.to_vec(), files).unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_edit_diff_builtin() {
|
fn test_edit_diff_builtin() {
|
||||||
let test_repo = TestRepo::init();
|
let test_repo = TestRepo::init();
|
||||||
@ -659,14 +685,7 @@ mod tests {
|
|||||||
changed_path.to_owned(),
|
changed_path.to_owned(),
|
||||||
added_path.to_owned(),
|
added_path.to_owned(),
|
||||||
];
|
];
|
||||||
let files = make_diff_files(
|
let files = make_diff(store, &left_tree, &right_tree, &changed_files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
&changed_files,
|
|
||||||
ConflictMarkerStyle::Diff,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
insta::assert_debug_snapshot!(files, @r#"
|
insta::assert_debug_snapshot!(files, @r#"
|
||||||
[
|
[
|
||||||
File {
|
File {
|
||||||
@ -755,14 +774,7 @@ mod tests {
|
|||||||
]
|
]
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
let no_changes_tree_id = apply_diff_builtin(
|
let no_changes_tree_id = apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
changed_files.clone(),
|
|
||||||
&files,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
no_changes_tree.id(),
|
no_changes_tree.id(),
|
||||||
@ -775,7 +787,7 @@ mod tests {
|
|||||||
file.toggle_all();
|
file.toggle_all();
|
||||||
}
|
}
|
||||||
let all_changes_tree_id =
|
let all_changes_tree_id =
|
||||||
apply_diff_builtin(store, &left_tree, &right_tree, changed_files, &files).unwrap();
|
apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
all_changes_tree.id(),
|
all_changes_tree.id(),
|
||||||
@ -794,14 +806,7 @@ mod tests {
|
|||||||
let right_tree = testutils::create_tree(&test_repo.repo, &[(added_empty_file_path, "")]);
|
let right_tree = testutils::create_tree(&test_repo.repo, &[(added_empty_file_path, "")]);
|
||||||
|
|
||||||
let changed_files = vec![added_empty_file_path.to_owned()];
|
let changed_files = vec![added_empty_file_path.to_owned()];
|
||||||
let files = make_diff_files(
|
let files = make_diff(store, &left_tree, &right_tree, &changed_files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
&changed_files,
|
|
||||||
ConflictMarkerStyle::Diff,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
insta::assert_debug_snapshot!(files, @r#"
|
insta::assert_debug_snapshot!(files, @r#"
|
||||||
[
|
[
|
||||||
File {
|
File {
|
||||||
@ -819,14 +824,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
"#);
|
"#);
|
||||||
let no_changes_tree_id = apply_diff_builtin(
|
let no_changes_tree_id = apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
changed_files.clone(),
|
|
||||||
&files,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
no_changes_tree.id(),
|
no_changes_tree.id(),
|
||||||
@ -839,7 +837,7 @@ mod tests {
|
|||||||
file.toggle_all();
|
file.toggle_all();
|
||||||
}
|
}
|
||||||
let all_changes_tree_id =
|
let all_changes_tree_id =
|
||||||
apply_diff_builtin(store, &left_tree, &right_tree, changed_files, &files).unwrap();
|
apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
all_changes_tree.id(),
|
all_changes_tree.id(),
|
||||||
@ -868,14 +866,7 @@ mod tests {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let changed_files = vec![added_executable_file_path.to_owned()];
|
let changed_files = vec![added_executable_file_path.to_owned()];
|
||||||
let files = make_diff_files(
|
let files = make_diff(store, &left_tree, &right_tree, &changed_files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
&changed_files,
|
|
||||||
ConflictMarkerStyle::Diff,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
insta::assert_debug_snapshot!(files, @r###"
|
insta::assert_debug_snapshot!(files, @r###"
|
||||||
[
|
[
|
||||||
File {
|
File {
|
||||||
@ -902,14 +893,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
"###);
|
"###);
|
||||||
let no_changes_tree_id = apply_diff_builtin(
|
let no_changes_tree_id = apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
changed_files.clone(),
|
|
||||||
&files,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
no_changes_tree.id(),
|
no_changes_tree.id(),
|
||||||
@ -922,7 +906,7 @@ mod tests {
|
|||||||
file.toggle_all();
|
file.toggle_all();
|
||||||
}
|
}
|
||||||
let all_changes_tree_id =
|
let all_changes_tree_id =
|
||||||
apply_diff_builtin(store, &left_tree, &right_tree, changed_files, &files).unwrap();
|
apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
all_changes_tree.id(),
|
all_changes_tree.id(),
|
||||||
@ -941,14 +925,7 @@ mod tests {
|
|||||||
let right_tree = testutils::create_tree(&test_repo.repo, &[]);
|
let right_tree = testutils::create_tree(&test_repo.repo, &[]);
|
||||||
|
|
||||||
let changed_files = vec![file_path.to_owned()];
|
let changed_files = vec![file_path.to_owned()];
|
||||||
let files = make_diff_files(
|
let files = make_diff(store, &left_tree, &right_tree, &changed_files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
&changed_files,
|
|
||||||
ConflictMarkerStyle::Diff,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
insta::assert_debug_snapshot!(files, @r###"
|
insta::assert_debug_snapshot!(files, @r###"
|
||||||
[
|
[
|
||||||
File {
|
File {
|
||||||
@ -975,14 +952,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
"###);
|
"###);
|
||||||
let no_changes_tree_id = apply_diff_builtin(
|
let no_changes_tree_id = apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
changed_files.clone(),
|
|
||||||
&files,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
no_changes_tree.id(),
|
no_changes_tree.id(),
|
||||||
@ -995,7 +965,7 @@ mod tests {
|
|||||||
file.toggle_all();
|
file.toggle_all();
|
||||||
}
|
}
|
||||||
let all_changes_tree_id =
|
let all_changes_tree_id =
|
||||||
apply_diff_builtin(store, &left_tree, &right_tree, changed_files, &files).unwrap();
|
apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
all_changes_tree.id(),
|
all_changes_tree.id(),
|
||||||
@ -1014,14 +984,7 @@ mod tests {
|
|||||||
let right_tree = testutils::create_tree(&test_repo.repo, &[]);
|
let right_tree = testutils::create_tree(&test_repo.repo, &[]);
|
||||||
|
|
||||||
let changed_files = vec![added_empty_file_path.to_owned()];
|
let changed_files = vec![added_empty_file_path.to_owned()];
|
||||||
let files = make_diff_files(
|
let files = make_diff(store, &left_tree, &right_tree, &changed_files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
&changed_files,
|
|
||||||
ConflictMarkerStyle::Diff,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
insta::assert_debug_snapshot!(files, @r#"
|
insta::assert_debug_snapshot!(files, @r#"
|
||||||
[
|
[
|
||||||
File {
|
File {
|
||||||
@ -1039,14 +1002,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
"#);
|
"#);
|
||||||
let no_changes_tree_id = apply_diff_builtin(
|
let no_changes_tree_id = apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
changed_files.clone(),
|
|
||||||
&files,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
no_changes_tree.id(),
|
no_changes_tree.id(),
|
||||||
@ -1059,7 +1015,7 @@ mod tests {
|
|||||||
file.toggle_all();
|
file.toggle_all();
|
||||||
}
|
}
|
||||||
let all_changes_tree_id =
|
let all_changes_tree_id =
|
||||||
apply_diff_builtin(store, &left_tree, &right_tree, changed_files, &files).unwrap();
|
apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
all_changes_tree.id(),
|
all_changes_tree.id(),
|
||||||
@ -1079,14 +1035,7 @@ mod tests {
|
|||||||
testutils::create_tree(&test_repo.repo, &[(empty_file_path, "modified\n")]);
|
testutils::create_tree(&test_repo.repo, &[(empty_file_path, "modified\n")]);
|
||||||
|
|
||||||
let changed_files = vec![empty_file_path.to_owned()];
|
let changed_files = vec![empty_file_path.to_owned()];
|
||||||
let files = make_diff_files(
|
let files = make_diff(store, &left_tree, &right_tree, &changed_files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
&changed_files,
|
|
||||||
ConflictMarkerStyle::Diff,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
insta::assert_debug_snapshot!(files, @r#"
|
insta::assert_debug_snapshot!(files, @r#"
|
||||||
[
|
[
|
||||||
File {
|
File {
|
||||||
@ -1109,14 +1058,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
"#);
|
"#);
|
||||||
let no_changes_tree_id = apply_diff_builtin(
|
let no_changes_tree_id = apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
changed_files.clone(),
|
|
||||||
&files,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
no_changes_tree.id(),
|
no_changes_tree.id(),
|
||||||
@ -1129,7 +1071,7 @@ mod tests {
|
|||||||
file.toggle_all();
|
file.toggle_all();
|
||||||
}
|
}
|
||||||
let all_changes_tree_id =
|
let all_changes_tree_id =
|
||||||
apply_diff_builtin(store, &left_tree, &right_tree, changed_files, &files).unwrap();
|
apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
all_changes_tree.id(),
|
all_changes_tree.id(),
|
||||||
@ -1148,14 +1090,7 @@ mod tests {
|
|||||||
let right_tree = testutils::create_tree(&test_repo.repo, &[(file_path, "")]);
|
let right_tree = testutils::create_tree(&test_repo.repo, &[(file_path, "")]);
|
||||||
|
|
||||||
let changed_files = vec![file_path.to_owned()];
|
let changed_files = vec![file_path.to_owned()];
|
||||||
let files = make_diff_files(
|
let files = make_diff(store, &left_tree, &right_tree, &changed_files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
&changed_files,
|
|
||||||
ConflictMarkerStyle::Diff,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
insta::assert_debug_snapshot!(files, @r###"
|
insta::assert_debug_snapshot!(files, @r###"
|
||||||
[
|
[
|
||||||
File {
|
File {
|
||||||
@ -1178,14 +1113,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
"###);
|
"###);
|
||||||
let no_changes_tree_id = apply_diff_builtin(
|
let no_changes_tree_id = apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
store,
|
|
||||||
&left_tree,
|
|
||||||
&right_tree,
|
|
||||||
changed_files.clone(),
|
|
||||||
&files,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
let no_changes_tree = store.get_root_tree(&no_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
no_changes_tree.id(),
|
no_changes_tree.id(),
|
||||||
@ -1198,7 +1126,7 @@ mod tests {
|
|||||||
file.toggle_all();
|
file.toggle_all();
|
||||||
}
|
}
|
||||||
let all_changes_tree_id =
|
let all_changes_tree_id =
|
||||||
apply_diff_builtin(store, &left_tree, &right_tree, changed_files, &files).unwrap();
|
apply_diff(store, &left_tree, &right_tree, &changed_files, &files);
|
||||||
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
let all_changes_tree = store.get_root_tree(&all_changes_tree_id).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
all_changes_tree.id(),
|
all_changes_tree.id(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user