diff options
Diffstat (limited to 'test/test_helper.bash')
| -rw-r--r-- | test/test_helper.bash | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/test/test_helper.bash b/test/test_helper.bash new file mode 100644 index 0000000..b4c49cf --- /dev/null +++ b/test/test_helper.bash @@ -0,0 +1,72 @@ +export TMP="$BATS_TEST_DIRNAME/tmp" + +teardown() { + rm -fr "${TMP:?}"/* +} + +assert() { + if ! "$@"; then + flunk "failed: $@" + fi +} + +refute() { + if "$@"; then + flunk "expected to fail: $@" + fi +} + +flunk() { + { if [ "$#" -eq 0 ]; then cat - + else echo "$@" + fi + } | sed "s:${TMP}:\${TMP}:g" >&2 + return 1 +} + +assert_success() { + if [ "$status" -ne 0 ]; then + { echo "command failed with exit status $status" + echo "output: $output" + } | flunk + elif [ "$#" -gt 0 ]; then + assert_output "$1" + fi +} + +assert_failure() { + if [ "$status" -eq 0 ]; then + flunk "expected failed exit status" + elif [ "$#" -gt 0 ]; then + assert_output "$1" + fi +} + +assert_equal() { + if [ "$1" != "$2" ]; then + { echo "expected: $1" + echo "actual: $2" + } | flunk + fi +} + +assert_output() { + local expected + if [ $# -eq 0 ]; then expected="$(cat -)" + else expected="$1" + fi + assert_equal "$expected" "$output" +} + +assert_output_contains() { + local expected="$1" + if [ -z "$expected" ]; then + echo "assert_output_contains needs an argument" >&2 + return 1 + fi + echo "$output" | $(type -p ggrep grep | head -1) -F "$expected" >/dev/null || { + { echo "expected output to contain $expected" + echo "actual: $output" + } | flunk + } +} |
