From a13719f28fd87de199ec886ac08c07b0089bacff Mon Sep 17 00:00:00 2001 From: Ivan Povalyukhin Date: Sat, 28 Mar 2015 16:35:11 -0700 Subject: [PATCH] test lib#composure_keywords --- test/lib/composure.bats | 9 +++++ test/test_helper.bash | 87 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100755 test/lib/composure.bats create mode 100644 test/test_helper.bash diff --git a/test/lib/composure.bats b/test/lib/composure.bats new file mode 100755 index 00000000..f2a42191 --- /dev/null +++ b/test/lib/composure.bats @@ -0,0 +1,9 @@ +#!/usr/bin/env bats + +load ../test_helper +load ../../lib/composure + +@test "composure_keywords()" { + run composure_keywords + assert_output "about author example group param version" +} diff --git a/test/test_helper.bash b/test/test_helper.bash new file mode 100644 index 00000000..da34c438 --- /dev/null +++ b/test/test_helper.bash @@ -0,0 +1,87 @@ +unset BASH_IT +unset BASH_IT_THEME +unset GIT_HOSTING +unset NGINX_PATH +unset IRC_CLIENT +unset TODO +unset SCM_CHECK + +BASH_IT_TEST_DIR="${BATS_TMPDIR}/bash_it" + +teardown() { + rm -rf "$BASH_IT_TEST_DIR" +} + +assert() { + if ! "$@"; then + flunk "failed: $@" + fi +} + +flunk() { + { if [ "$#" -eq 0 ]; then cat - + else echo "$@" + fi + } | sed "s:${BASH_IT_TEST_DIR}:TEST_DIR:g" >&2 + return 1 +} + +assert_success() { + if [ "$status" -ne 0 ]; then + flunk "command failed with exit status $status" + 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_line() { + if [ "$1" -ge 0 ] 2>/dev/null; then + assert_equal "$2" "${lines[$1]}" + else + local line + for line in "${lines[@]}"; do + if [ "$line" = "$1" ]; then return 0; fi + done + flunk "expected line \`$1'" + fi +} + +refute_line() { + if [ "$1" -ge 0 ] 2>/dev/null; then + local num_lines="${#lines[@]}" + if [ "$1" -lt "$num_lines" ]; then + flunk "output has $num_lines lines" + fi + else + local line + for line in "${lines[@]}"; do + if [ "$line" = "$1" ]; then + flunk "expected to not find line \`$line'" + fi + done + fi +}