59 lines
1.7 KiB
Bash
Executable file
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:-}" \
|
|
"$@"
|