Introduce assert_output
This commit is contained in:
parent
f9d6696687
commit
b57d527d6e
2 changed files with 29 additions and 2 deletions
|
|
@ -35,7 +35,7 @@ export -f assert_fails
|
|||
# helper functions inspired by bats/bats-assert
|
||||
run() {
|
||||
set +e
|
||||
("$@")
|
||||
output="$("$@" 2>&1)"
|
||||
status=$?
|
||||
set -e
|
||||
return 0
|
||||
|
|
@ -52,7 +52,14 @@ assert_failure() {
|
|||
exit 1
|
||||
fi
|
||||
}
|
||||
export -f run assert_success assert_failure
|
||||
assert_output() {
|
||||
if [ "$output" != "$1" ]; then
|
||||
echo "Expected output to equal: $1"
|
||||
echo "Actual output: $output"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
export -f run assert_success assert_failure assert_output
|
||||
|
||||
# main flow
|
||||
orig_ref="$(git symbolic-ref --quiet --short HEAD || git rev-parse HEAD)"
|
||||
|
|
|
|||
|
|
@ -150,3 +150,23 @@ commit_with_assertion() {
|
|||
assert_failure
|
||||
assert_output --partial "Expected command to fail, but it succeeded."
|
||||
}
|
||||
|
||||
@test "assert_output should succeed if the output matches the given string" {
|
||||
git checkout -b feature
|
||||
commit_with_assertion $'run echo hello\nassert_output hello'
|
||||
|
||||
run git-check-assertions
|
||||
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "assert_output should fail if the output does not match the given string" {
|
||||
git checkout -b feature
|
||||
commit_with_assertion $'run echo hello\nassert_output goodbye'
|
||||
|
||||
run git-check-assertions
|
||||
|
||||
assert_failure
|
||||
assert_output --partial "Expected output to equal: goodbye"
|
||||
assert_output --partial "Actual output: hello"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue