mechanicaldiff/test/mechanicaldiff.bats

31 lines
915 B
Bash
Executable file

#!/usr/bin/env bats
setup() {
set -euo pipefail
bats_load_library bats-support
bats_load_library bats-assert
DIR="$(cd "$(dirname "$BATS_TEST_FILENAME")" >/dev/null 2>&1 && pwd)"
PATH="$DIR/../bin:$PATH"
}
@test "keeps hunk when replacement matches" {
printf "%s\n" "foo" >"$BATS_TEST_TMPDIR/old"
printf "%s\n" "bar" >"$BATS_TEST_TMPDIR/new"
diff_output="$(git diff --no-index "$BATS_TEST_TMPDIR/old" \
"$BATS_TEST_TMPDIR/new" || true)"
run mechanicaldiff.py foo bar <<<"$diff_output"
assert_success
assert_output "$diff_output"
}
@test "drops diff when replacement does not match" {
printf "%s\n" "foo" >"$BATS_TEST_TMPDIR/old"
printf "%s\n" "baz" >"$BATS_TEST_TMPDIR/new"
git diff --no-index "$BATS_TEST_TMPDIR/old" "$BATS_TEST_TMPDIR/new" \
>"$BATS_TEST_TMPDIR/diff" || true
run mechanicaldiff.py foo bar <"$BATS_TEST_TMPDIR/diff"
assert_success
assert_output ""
}