#!/bin/bash

TEST_FILE=(src/tests/lambda/*/test_"$LAMBDA_DIR".py)
if [[ -z "$STATE_MACHINE" ]]; then
  STATE_MACHINE=$(python3 scripts/lambda_in_state_machine.py "${LAMBDA_DIR}")
fi

# shellcheck disable=SC2128
if [[ -f "$TEST_FILE" || -n "$STATE_MACHINE" ]]; then
  aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 086679231553.dkr.ecr.us-east-1.amazonaws.com
  IMAGE_NAME=vectorcomponenttests
  docker build . -t $IMAGE_NAME

  MAKE_COMMAND="make run_lambda_tests"
  if [[ -n "$STATE_MACHINE" ]]; then
    MAKE_COMMAND="make run_state_machine_tests"
  fi
  docker run -v "$(pwd)"/html_report:/html_report \
   -e AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" \
   -e AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" \
   -e AWS_SESSION_TOKEN="$AWS_SESSION_TOKEN" \
   -e LAMBDA_DIR="$LAMBDA_DIR" \
   -e STATE_MACHINE="${STATE_MACHINE//-/_}" \
   $IMAGE_NAME /bin/bash -c "$MAKE_COMMAND"
else
  echo "No test file for lambda $LAMBDA_DIR or corresponding state machine test"
  echo "Skipping integration tests"
fi
