freshyo/tests/e2e/run.sh
2026-09-16 21:48:06 +05:30

59 lines
1.7 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
if [ ! -f .env ]; then
echo "Missing tests/e2e/.env — copy .env.example to .env and fill it in." >&2
exit 1
fi
while IFS= read -r line || [ -n "$line" ]; do
line="${line%$'\r'}"
case "$line" in
'' | '#'*) continue ;;
esac
export "$line"
done < ./.env
: "${APP_ID:?APP_ID is required}"
: "${STAFF_NAME:?STAFF_NAME is required}"
: "${STAFF_PASSWORD:?STAFF_PASSWORD is required}"
: "${PRODUCT_NAME:?PRODUCT_NAME is required}"
: "${STORE_ID:?STORE_ID is required}"
: "${SLOT_DATE:?SLOT_DATE is required (YYYY-MM-DD, must be today)}"
: "${SLOT_HOUR:?SLOT_HOUR is required (delivery hour, 24h zero-padded)}"
: "${SLOT_MIN:?SLOT_MIN is required (delivery minute, zero-padded)}"
export PRODUCT_NAME
if [ "$#" -eq 0 ]; then
set -- .
fi
freeze_total=$((10#$SLOT_HOUR * 60 + 10#$SLOT_MIN - 10))
SLOT_FREEZE_HOUR=$(printf '%02d' $((freeze_total / 60)))
SLOT_FREEZE_MIN=$(printf '%02d' $((freeze_total % 60)))
export SLOT_FREEZE_HOUR SLOT_FREEZE_MIN
maestro test \
-e APP_ID="$APP_ID" \
-e STAFF_NAME="$STAFF_NAME" \
-e STAFF_PASSWORD="$STAFF_PASSWORD" \
-e PRODUCT_NAME="$PRODUCT_NAME" \
-e STORE_ID="$STORE_ID" \
-e SKU1_QTY="${SKU1_QTY:-}" \
-e SKU1_PRICE="${SKU1_PRICE:-}" \
-e SKU1_MRP="${SKU1_MRP:-}" \
-e SKU2_QTY="${SKU2_QTY:-}" \
-e SKU2_PRICE="${SKU2_PRICE:-}" \
-e SKU2_MRP="${SKU2_MRP:-}" \
-e SKU2_FLASH_PRICE="${SKU2_FLASH_PRICE:-}" \
-e SLOT_DATE="$SLOT_DATE" \
-e SLOT_HOUR="$SLOT_HOUR" \
-e SLOT_MIN="$SLOT_MIN" \
-e SLOT_FREEZE_HOUR="$SLOT_FREEZE_HOUR" \
-e SLOT_FREEZE_MIN="$SLOT_FREEZE_MIN" \
-e USER_APP_ID="${USER_APP_ID:-in.freshyo.app}" \
-e USER_MOBILE="${USER_MOBILE:-}" \
-e USER_PASSWORD="${USER_PASSWORD:-}" \
"$@"