#!/usr/bin/env bash export DOKKU_LIB_ROOT="/var/lib/dokku" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" flunk() { { if [ "$#" -eq 0 ]; then cat - else echo "$*" fi } return 1 } assert_equal() { if [ "$1" != "$2" ]; then { echo "expected: $1" echo "actual: $2" } | flunk fi } # ShellCheck doesn't know about $status from Bats # shellcheck disable=SC2154 assert_exit_status() { assert_equal "$1" "$status" } # ShellCheck doesn't know about $status from Bats # shellcheck disable=SC2154 # shellcheck disable=SC2120 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_exists() { if [ ! -f "$1" ]; then flunk "expected file to exist: $1" fi } assert_contains() { if [[ "$1" != *"$2"* ]]; then flunk "expected $2 to be in: $1" fi } # ShellCheck doesn't know about $output from Bats # shellcheck disable=SC2154 assert_output() { local expected if [ $# -eq 0 ]; then expected="$(cat -)" else expected="$1" fi assert_equal "$expected" "$output" } # ShellCheck doesn't know about $output from Bats # shellcheck disable=SC2154 assert_output_contains() { local input="$output" local expected="$1" local count="${2:-1}" local found=0 until [ "${input/$expected/}" = "$input" ]; do input="${input/$expected/}" found=$((found + 1)) done assert_equal "$count" "$found" }