#!/usr/bin/env bash

LAMBDA_FUNCTION="${1:-}"
LAMBDA_ENVIRONMENT="${2:-qa}"

[[ "$LAMBDA_ENVIRONMENT" != "local" && "$LAMBDA_ENVIRONMENT" != "qa" ]] &&
echo "LAMBDA_ENVIRONMENT is $LAMBDA_ENVIRONMENT, it must be set to local or qa" && exit 1

[[ "$LAMBDA_ENVIRONMENT" == "local" && -z "$LAMBDA_FUNCTION" ]] &&
echo "LAMBDA_FUNCTION is required when LAMBDA_ENVIRONMENT is local" && exit 1

echo "Running integration tests against $LAMBDA_FUNCTION on $LAMBDA_ENVIRONMENT environment"

LAMBDA_ENDPOINT_URL=""
PROFILE=""
[[ "$LAMBDA_ENVIRONMENT" == "local" ]] && LAMBDA_ENDPOINT_URL="http://${LAMBDA_FUNCTION}:8080" && PROFILE="--profile ${LAMBDA_FUNCTION}"

echo $PROFILE

cleanup() {
  rc=$?
  docker compose $PROFILE down --remove-orphans
  exit $rc
}
trap cleanup EXIT

LAMBDA_FUNCTION_NAMES=$LAMBDA_FUNCTION LAMBDA_ENDPOINT_URL=$LAMBDA_ENDPOINT_URL \
 docker compose $PROFILE up --build --exit-code-from integration-tests
