b6167bcb-7363-4695-9481-addd81de4367
This commit is contained in:
1 parent
fdc3b82d10
commit
d226dabba3
136 files changed
+13904
-2
No files matched your search
Executable
+132
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/env bash
|
||||
# AOS all-in-one verification: start server, verify, cleanup.
|
||||
set -u
|
||||
cd /home/z/my-project
|
||||
BASE=http://127.0.0.1:3000
|
||||
SHOTS=/home/z/my-project/aos-shots
|
||||
mkdir -p "$SHOTS"
|
||||
|
||||
echo "=== Starting dev server (output -> dev.log) ==="
|
||||
pkill -f "next dev" 2>/dev/null
|
||||
sleep 1
|
||||
bun run dev > dev.log 2>&1 &
|
||||
SRV=$!
|
||||
echo " server pid $SRV"
|
||||
|
||||
echo "=== Waiting for server ready ==="
|
||||
ok=0
|
||||
for i in $(seq 1 90); do
|
||||
if curl -s -o /dev/null -w "%{http_code}" "$BASE/" 2>/dev/null | grep -q 200; then ok=1; break; fi
|
||||
sleep 1
|
||||
done
|
||||
if [ "$ok" != "1" ]; then
|
||||
echo "SERVER NOT READY after ${i}s"
|
||||
echo "--- dev.log tail ---"
|
||||
tail -30 dev.log
|
||||
kill $SRV 2>/dev/null
|
||||
exit 1
|
||||
fi
|
||||
echo " server ready after ${i}s"
|
||||
sleep 2
|
||||
|
||||
echo ""
|
||||
echo "=== API smoke tests ==="
|
||||
for ep in dashboard crm leads projects licenses finance modules audit; do
|
||||
code=$(curl -s -o /dev/null -w "%{http_code}" "$BASE/api/aos/$ep")
|
||||
echo " /api/aos/$ep -> $code"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=== Agent Browser: open dashboard ==="
|
||||
agent-browser open "$BASE/" >/dev/null 2>&1
|
||||
agent-browser wait --load networkidle >/dev/null 2>&1 || true
|
||||
agent-browser wait 2000 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/01-dashboard.png" >/dev/null 2>&1 && echo " shot 01-dashboard OK" || echo " shot 01 FAILED"
|
||||
|
||||
echo ""
|
||||
echo "=== Snapshot interactive (first 30 lines) ==="
|
||||
agent-browser snapshot -i 2>&1 | head -30
|
||||
|
||||
echo ""
|
||||
echo "=== Page errors so far ==="
|
||||
agent-browser errors 2>&1 | head -15
|
||||
|
||||
echo ""
|
||||
echo "=== Navigate: CRM ==="
|
||||
agent-browser find text "CRM" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/02-crm.png" >/dev/null 2>&1 && echo " shot 02-crm OK" || echo " shot 02 FAILED"
|
||||
|
||||
echo "=== Navigate: Leads Finder ==="
|
||||
agent-browser find text "Leads Finder" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/03-leads.png" >/dev/null 2>&1 && echo " shot 03-leads OK" || echo " shot 03 FAILED"
|
||||
|
||||
echo "=== Navigate: Projekte ==="
|
||||
agent-browser find text "Projekte" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/04-projects.png" >/dev/null 2>&1 && echo " shot 04-projects OK" || echo " shot 04 FAILED"
|
||||
|
||||
echo "=== Navigate: Lizenzen ==="
|
||||
agent-browser find text "Lizenzen" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/05-licenses.png" >/dev/null 2>&1 && echo " shot 05-licenses OK" || echo " shot 05 FAILED"
|
||||
|
||||
echo "=== Navigate: Finanzen ==="
|
||||
agent-browser find text "Finanzen" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/06-finance.png" >/dev/null 2>&1 && echo " shot 06-finance OK" || echo " shot 06 FAILED"
|
||||
|
||||
echo "=== Navigate: Erweiterungen ==="
|
||||
agent-browser find text "Erweiterungen" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/07-settings.png" >/dev/null 2>&1 && echo " shot 07-settings OK" || echo " shot 07 FAILED"
|
||||
|
||||
echo ""
|
||||
echo "=== Interactivity: Leads -> select first lead -> Erzeugen (AI) ==="
|
||||
agent-browser find text "Leads Finder" click >/dev/null 2>&1
|
||||
agent-browser wait 2000 >/dev/null 2>&1
|
||||
# click first lead card in the list
|
||||
agent-browser eval "document.querySelector('button[class*=border]')?.click()" >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
# click the Erzeugen button if present
|
||||
agent-browser find text "Erzeugen" click 2>&1 | head -3
|
||||
agent-browser wait 10000 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/08-lead-explain.png" >/dev/null 2>&1 && echo " shot 08-explain OK" || echo " shot 08 FAILED"
|
||||
|
||||
echo ""
|
||||
echo "=== Final error check ==="
|
||||
echo "--- page errors ---"
|
||||
agent-browser errors 2>&1 | head -15
|
||||
echo "--- console (last 8) ---"
|
||||
agent-browser console 2>&1 | tail -8
|
||||
|
||||
echo ""
|
||||
echo "=== Sticky footer check (dashboard) ==="
|
||||
agent-browser find text "Dashboard" click >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
agent-browser eval "JSON.stringify({vh: window.innerHeight, bodyH: document.body.scrollHeight, footer: document.querySelector('footer') ? document.querySelector('footer').getBoundingClientRect().top : -1})" 2>&1 | tail -2
|
||||
|
||||
echo ""
|
||||
echo "=== Mobile viewport check ==="
|
||||
agent-browser set viewport 390 844 >/dev/null 2>&1
|
||||
agent-browser wait 1000 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/09-mobile-dashboard.png" >/dev/null 2>&1 && echo " shot 09-mobile OK" || echo " shot 09 FAILED"
|
||||
agent-browser find text "CRM" click >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/10-mobile-crm.png" >/dev/null 2>&1 && echo " shot 10-mobile-crm OK" || echo " shot 10 FAILED"
|
||||
# reset viewport
|
||||
agent-browser set viewport 1440 900 >/dev/null 2>&1
|
||||
|
||||
echo ""
|
||||
echo "=== Cleanup ==="
|
||||
agent-browser close >/dev/null 2>&1
|
||||
kill $SRV 2>/dev/null
|
||||
sleep 1
|
||||
echo "=== dev.log tail (last 20) ==="
|
||||
tail -20 dev.log
|
||||
echo ""
|
||||
echo "=== Screenshots ==="
|
||||
ls -la "$SHOTS" 2>/dev/null | tail -15
|
||||
echo ""
|
||||
echo "=== VERIFICATION COMPLETE ==="
|
||||
Reference in new issue
Block a user