#!/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:-}" \ "$@"