#! /usr/bin/env bash
set -eoux pipefail

if ! kind get clusters | grep kind ; then
  ./scripts/cluster.sh up
  trap "./scripts/cluster.sh down" EXIT
else
  ./scripts/cluster.sh deploy
fi

pushd test
make bin/ginkgo
make e2e.test
popd

kubeconfig=kubeconfig
kind get kubeconfig --name kind > "$kubeconfig"

SECONDS=0
until KUBECONFIG="$kubeconfig" kubectl get -n tidb42 pod | grep db-tidb-0 | grep -q 2/2
do
    if (( SECONDS > 1800 ))
    then
        echo "TiDB pod is not running, aborted."
        exit 1
    fi
    
    echo "TiDB pod is not running yet. Waiting..."
    KUBECONFIG="$kubeconfig" kubectl get pod -n tidb42
    sleep 10
done
echo "TiDB pod is running. Starting Ginkgo tests."

./bin/ginkgo \
-failFast \
--nodes=1 \
--stream ./bin/e2e.test -- \
--kubeconfig "${PWD}/${kubeconfig}"
