Introduce assert_success
This commit is contained in:
parent
a1ffb1abd4
commit
1a10b24b06
2 changed files with 36 additions and 0 deletions
|
|
@ -32,6 +32,23 @@ assert_fails() {
|
|||
}
|
||||
export -f assert_fails
|
||||
|
||||
# helper functions inspired by bats/bats-assert
|
||||
run() {
|
||||
set +e
|
||||
("$@")
|
||||
status=$?
|
||||
set -e
|
||||
return 0
|
||||
}
|
||||
assert_success() {
|
||||
if [ "$status" -ne 0 ]; then
|
||||
echo "Expected command to succeed, but it failed."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
export -f run assert_success
|
||||
|
||||
# main flow
|
||||
orig_ref="$(git symbolic-ref --quiet --short HEAD || git rev-parse HEAD)"
|
||||
base="$(git merge-base main HEAD)"
|
||||
mapfile -t commits < <(git rev-list --reverse "${base}..HEAD")
|
||||
|
|
|
|||
|
|
@ -112,3 +112,22 @@ commit_with_assertion() {
|
|||
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "assert_success should succeed if the executed command succeeded" {
|
||||
git checkout -b feature
|
||||
commit_with_assertion $'run exit 0\nassert_success'
|
||||
|
||||
run git-check-assertions
|
||||
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "assert_success should fail if the executed command failed" {
|
||||
git checkout -b feature
|
||||
commit_with_assertion $'run exit 1\nassert_success'
|
||||
|
||||
run git-check-assertions
|
||||
|
||||
assert_failure
|
||||
assert_output --partial "Expected command to succeed, but it failed."
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue