tj.git-extras/tests/git-continue.bats
Edwin Kofler c49ca70814
Mostly finish pytest to Bats conversion (#1200)
* Mostly finish pytest to Bats conversion

* Add Bats version note to testing docs

* Move Bats CI check to separate job
2025-03-26 11:19:30 +08:00

93 lines
1.5 KiB
Bash
Executable file

#!/usr/bin/env bats
source "$BATS_TEST_DIRNAME/test_util.sh"
setup_file() {
test_util.setup_file
}
setup() {
test_util.cd_test
test_util.git_init
git commit -m 'Initial commit' --allow-empty
git switch -c A main
printf '%s\n' 'a' >> ./tmp_file
git add ./tmp_file
git commit -m 'A'
git switch -c B main
printf '%s\n' 'b' >> ./tmp_file
git add ./tmp_file
git commit -m 'B'
}
@test "works with cherry pick" {
run git cherry-pick A
assert_failure
run git status
assert_line -p 'Unmerged paths:'
assert_success
git add .
GIT_EDITOR=cat run git continue
assert_success
run git status
assert_line -p 'nothing to commit, working tree clean'
assert_success
}
@test "works with merge" {
run git merge A
assert_failure
run git status
assert_line -p 'Unmerged paths:'
assert_success
git add .
GIT_EDITOR=cat run git continue
assert_success
run git status
assert_line -p 'nothing to commit, working tree clean'
assert_success
}
@test "works with rebase" {
run git rebase A
assert_failure
run git status
assert_line -p 'Unmerged paths:'
assert_success
git add .
GIT_EDITOR=cat run git continue
assert_success
run git status
assert_line -p 'nothing to commit, working tree clean'
assert_success
}
@test "works with revert" {
run git revert A
assert_failure
run git status
assert_line -p 'Unmerged paths:'
assert_success
git add .
GIT_EDITOR=cat run git continue
assert_failure # TODO: Git seems to do nothing and error out?
run git status
assert_line -p 'nothing to commit, working tree clean'
assert_success
}