Add support for rewriting hunks if only specific lines match
This commit is contained in:
parent
56d1f03c83
commit
8ebcba623e
2 changed files with 87 additions and 22 deletions
|
|
@ -128,3 +128,31 @@ setup() {
|
|||
assert_success
|
||||
assert_output "$(cat "$BATS_TEST_TMPDIR/diff")"
|
||||
}
|
||||
|
||||
@test "keeps only matching line in a consecutive change block" {
|
||||
cat >"$BATS_TEST_TMPDIR/old" <<-'EOF'
|
||||
foo
|
||||
bar
|
||||
baz
|
||||
EOF
|
||||
sed \
|
||||
-e 's/foo/foo_changed/' \
|
||||
-e 's/bar/bar_changed/' \
|
||||
"$BATS_TEST_TMPDIR/old" >"$BATS_TEST_TMPDIR/new"
|
||||
sed 's/foo/foo_changed/' "$BATS_TEST_TMPDIR/old" \
|
||||
>"$BATS_TEST_TMPDIR/new_kept"
|
||||
|
||||
git diff --no-index "$BATS_TEST_TMPDIR/old" "$BATS_TEST_TMPDIR/new" \
|
||||
>"$BATS_TEST_TMPDIR/diff_full" || true
|
||||
git diff --no-index "$BATS_TEST_TMPDIR/old" "$BATS_TEST_TMPDIR/new_kept" \
|
||||
>"$BATS_TEST_TMPDIR/diff_expected" || true
|
||||
|
||||
run mechanicaldiff.py foo foo_changed <"$BATS_TEST_TMPDIR/diff_full"
|
||||
assert_failure
|
||||
expected="$(sed \
|
||||
-e 's/new_kept/new/g' \
|
||||
-e '/^index /d' \
|
||||
"$BATS_TEST_TMPDIR/diff_expected")"
|
||||
output_normalized="$(printf '%s\n' "$output" | sed -e '/^index /d')"
|
||||
assert_equal "$expected" "$output_normalized"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue