#! /usr/bin/env bash
set +e

DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
ENVIRONMENT="${ENVIRONMENT:-test}"

GREEN="\033[0;32m"
RED="\033[0;31m"
NONE="\033[0m"

# shellcheck source=./env/test
source "$DIR/env/$ENVIRONMENT"

function check_for_exit() {
    if [[ $1 != 0 ]]; then
        echo "Exit code was $1"
        echo
        echo -e "${RED}TEST SUITE FAIL${NONE}"
        exit "$1"
    fi
}

echo -e "${GREEN}Running VET${NONE}"
pushd "$DIR"/.. > /dev/null 2>&1
    set +e
    go vet ./...
    check_for_exit $?
    set -e
popd > /dev/null 2>&1

echo -e "${GREEN}Running Unit Tests${NONE}"
"$DIR"/unit
check_for_exit $?

echo -e "${GREEN}Running Integration Tests${NONE}"
"$DIR"/integration
check_for_exit $?

echo -e "${GREEN}Running Acceptance Tests${NONE}"
"$DIR"/acceptance
check_for_exit $?

echo
echo -e "${GREEN}TEST SUITE PASS${NONE}"