#!/bin/bash

for param in "$@"; do
  if [[ $param == *=* ]]; then
    var_name="${param%%=*}"
    var_value="${param#*=}"
    export "$var_name"="$var_value"
  fi
done

CONFIG_FILE=${CONFIG_FILE:-'qa'}
CYPRESS_OVERRIDE_FRONTEND_HOST=${CYPRESS_OVERRIDE_FRONTEND_HOST:-''}
APP=$(node scripts/getBaseUrl.js "$SPEC" "$CONFIG_FILE")

if [[ -n ${CYPRESS_OVERRIDE_FRONTEND_HOST} ]]; then
  APP=${CYPRESS_OVERRIDE_FRONTEND_HOST}
fi

if [[ -n ${TRIES} ]]; then
  TRIES="--repeat ${TRIES}"
else
	TRIES='--repeat 2'
fi

if [[ -n ${DELAY} ]]; then
  DELAY="--delay ${DELAY}"
else
	DELAY='--delay 2'
fi

  yarn cypress verify
	mkdir -p logs/$RUN_ID/status/

  if [ "${DEBUG}" = "true" ]; then
    DEBUG=rerun-plugin,cypress:* CYPRESS_BASE_URL=$APP node framework/src/rerunPlugin.js run $TRIES $DELAY --env "TAGS=($TAGS) and not @wip,configFile=$CONFIG_FILE" --spec "$SPEC" --headless --browser chrome ;
  else
  	CYPRESS_BASE_URL=$APP node framework/src/rerunPlugin.js run $TRIES $DELAY --env "TAGS=($TAGS) and not @wip,configFile=$CONFIG_FILE" --spec "$SPEC" --headless --browser chrome ;
  fi
  CYPRESS_EXIT_CODE=$?

  echo $CYPRESS_EXIT_CODE >> logs/$RUN_ID/status/${SPEC##*/}.txt ;\
  echo 'cypress status:' & cat logs/$RUN_ID/status/${SPEC##*/}.txt ;\
	echo 'uploading results' ;\
	sleep 5;\
	./scripts/uploadLogsToS3.sh $RUN_ID ;\
	./scripts/uploadNewResultsToS3.sh $RUN_ID ${SPEC##*/};\
	./scripts/uploadLighthouseToS3.sh $RUN_ID;\
	echo 'Finish Task' ;\
  
