OTP test infrastructure for Maestro flows
Dev-only /internal/_test/peek-otp + /internal/_test/reset-phone endpoints gated by NODE_ENV !== 'production'. peek-otp reads the latest stub OTP out of an in-memory map populated by otp.service.js fazpassSendStub; reset-phone wipes otp_requests rows (and optionally the customers row) so flows can re-run without tripping cooldowns. JS + shell helpers under .maestro/scripts/ wrap the endpoints for use inside Maestro runScript steps. 01_smoke.yaml expanded from a launch-only sanity check to a full cold-start onboarding -> force-register -> OTP -> home walk. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
20
client_app/.maestro/scripts/reset_phone.sh
Executable file
20
client_app/.maestro/scripts/reset_phone.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
# Wipe otp_requests rows + (optionally) customer row for ${TEST_PHONE} so
|
||||
# repeated test runs don't trip the 60s cooldown or hit IDENTITY_CONFLICT.
|
||||
#
|
||||
# Runs against backend's dev-only /internal/_test/reset-phone endpoint.
|
||||
set -euo pipefail
|
||||
|
||||
phone="${TEST_PHONE:-}"
|
||||
url="${BACKEND_INTERNAL_URL:-http://localhost:3001}"
|
||||
drop_customer="${DROP_CUSTOMER:-true}"
|
||||
|
||||
if [[ -z "$phone" ]]; then
|
||||
echo "TEST_PHONE env var required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
curl -fsS -X POST "${url}/internal/_test/reset-phone" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"phone\":\"${phone}\",\"drop_customer\":${drop_customer}}" >/dev/null
|
||||
echo "reset complete: ${phone}"
|
||||
Reference in New Issue
Block a user