harb/scripts/run-usertest.sh

131 lines
3.4 KiB
Bash
Raw Permalink Normal View History

2026-02-18 00:19:05 +01:00
#!/bin/bash
# Quick-start script for running user testing suite
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_ROOT"
echo "🧪 Kraiken User Testing Suite"
echo "=============================="
echo ""
# Check if stack is running
echo "📊 Checking stack health..."
if ! curl -s http://localhost:8081/api/rpc > /dev/null 2>&1; then
echo "❌ Stack is not running!"
echo ""
echo "Please start the stack first:"
echo " ./scripts/dev.sh start"
echo ""
exit 1
fi
echo "✅ Stack is running"
echo ""
# Create output directories
echo "📁 Creating output directories..."
mkdir -p tmp/usertest-results
mkdir -p test-results/usertest
echo "✅ Directories ready"
echo ""
# Parse arguments
PERSONA=""
DEBUG_MODE=""
HEADED_MODE=""
while [[ $# -gt 0 ]]; do
case $1 in
--persona)
PERSONA="$2"
shift 2
;;
--debug)
DEBUG_MODE="--debug"
shift
;;
--headed)
HEADED_MODE="--headed"
shift
;;
*)
echo "Unknown option: $1"
echo "Usage: $0 [--persona <name>] [--debug] [--headed]"
echo ""
echo "Personas:"
echo " marcus - Marcus 'Flash' Chen (Degen/MEV Hunter)"
echo " sarah - Sarah Park (Cautious Yield Farmer)"
echo " tyler - Tyler 'Bags' Morrison (Retail Degen)"
echo " priya - Dr. Priya Malhotra (Institutional)"
echo " alex - Alex Rivera (Newcomer)"
echo ""
exit 1
;;
esac
done
# Determine which tests to run
if [ -z "$PERSONA" ]; then
echo "🎭 Running ALL personas..."
TEST_PATTERN="tests/e2e/usertest/"
else
case $PERSONA in
marcus)
echo "🎭 Running Marcus 'Flash' Chen (Degen)..."
TEST_PATTERN="tests/e2e/usertest/marcus-degen.spec.ts"
;;
sarah)
echo "🎭 Running Sarah Park (Yield Farmer)..."
TEST_PATTERN="tests/e2e/usertest/sarah-yield-farmer.spec.ts"
;;
tyler)
echo "🎭 Running Tyler 'Bags' Morrison (Retail)..."
TEST_PATTERN="tests/e2e/usertest/tyler-retail-degen.spec.ts"
;;
priya)
echo "🎭 Running Dr. Priya Malhotra (Institutional)..."
TEST_PATTERN="tests/e2e/usertest/priya-institutional.spec.ts"
;;
alex)
echo "🎭 Running Alex Rivera (Newcomer)..."
TEST_PATTERN="tests/e2e/usertest/alex-newcomer.spec.ts"
;;
*)
echo "❌ Unknown persona: $PERSONA"
echo ""
echo "Available personas: marcus, sarah, tyler, priya, alex"
exit 1
;;
esac
fi
echo ""
echo "▶️ Starting tests..."
echo ""
# Run tests with workers=1 to avoid account conflicts
npx playwright test "$TEST_PATTERN" --workers=1 $DEBUG_MODE $HEADED_MODE
echo ""
echo "✅ Tests complete!"
echo ""
echo "📊 Results:"
echo " - Screenshots: test-results/usertest/"
echo " - JSON reports: tmp/usertest-results/"
echo ""
# Show report files
if [ -d "tmp/usertest-results" ]; then
echo "Generated reports:"
ls -lh tmp/usertest-results/*.json 2>/dev/null | awk '{print " - " $9 " (" $5 ")"}'
fi
echo ""
echo "🔍 To analyze results:"
echo " cat tmp/usertest-results/<persona-name>.json | jq"
echo ""