#!/usr/bin/env bash

npm_bin=$(which npm)
if [[ -z "$npm_bin" ]]; then
    echo "NPM must be on the path. (https://www.npmjs.com/)"
    exit 1
fi

# From https://www.linuxquestions.org/questions/programming-9/bash-script-return-full-path-and-filename-680368/page3.html
function abs_path {
  if [[ -d "$1" ]]
  then
      pushd "$1" >/dev/null
      pwd
      popd >/dev/null
  elif [[ -e $1 ]]
  then
      pushd "$(dirname "$1")" >/dev/null
      echo "$(pwd)/$(basename "$1")"
      popd >/dev/null
  else
      echo "$1" does not exist! >&2
      return 127
  fi
}
wct_bin=$(which wct)
if [[ -z "$wct_bin" ]]; then
  wct_bin=$(abs_path ./node_modules/web-component-tester/bin/wct);
fi
if [[ -z "$wct_bin" ]]; then
    echo "wct_bin must be set or WCT locally installed (npm install wct)."
    exit 1
fi

bazel_bin=$(which bazelisk 2>/dev/null)
if [[ -z "$bazel_bin" ]]; then
    echo "Warning: bazelisk is not installed; falling back to bazel."
    bazel_bin=bazel
fi

# WCT tests are not hermetic, and need extra environment variables.
# TODO(hanwen): does $DISPLAY even work on OSX?
${bazel_bin} test \
      --test_env="HOME=$HOME" \
      --test_env="WCT=${wct_bin}" \
      --test_env="WCT_ARGS=${WCT_ARGS}" \
      --test_env="NPM=${npm_bin}" \
      --test_env="DISPLAY=${DISPLAY}" \
      --test_env="WCT_HEADLESS_MODE=${WCT_HEADLESS_MODE}" \
      "$@" \
      //polygerrit-ui/app:embed_test \
      //polygerrit-ui/app:wct_test
