e70ae79d-5898-4c55-8ceb-d2c701ce08b4
This commit is contained in:
1 parent
d226dabba3
commit
5855f699f3
53 files changed
+1911
-44
No files matched your search
+178
@@ -0,0 +1,178 @@
|
||||
#!/usr/bin/env bash
|
||||
# Cleaner verification: robust selectors, screenshot analysis of each new feature.
|
||||
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 "=== Start server + reseed ==="
|
||||
pkill -f "next dev" 2>/dev/null; sleep 1
|
||||
bun run dev > dev.log 2>&1 &
|
||||
SRV=$!
|
||||
for i in $(seq 1 90); do curl -s -o /dev/null "$BASE/" 2>/dev/null && break; sleep 1; done
|
||||
echo " ready after ${i}s"
|
||||
curl -s -X POST "$BASE/api/aos/seed" >/dev/null 2>&1 && echo " reseeded"
|
||||
sleep 2
|
||||
|
||||
agent-browser open "$BASE/" >/dev/null 2>&1
|
||||
agent-browser wait --load networkidle >/dev/null 2>&1 || true
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
agent-browser set viewport 1440 900 >/dev/null 2>&1
|
||||
|
||||
echo ""
|
||||
echo "=== TEST 1: Audit view ==="
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
AUDREF=$(grep -i 'button "Audit-Protokoll"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
agent-browser click "$AUDREF" >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
H1=$(agent-browser get text h1 2>/dev/null | head -1)
|
||||
echo " H1=$H1"
|
||||
agent-browser screenshot --full "$SHOTS/v4-audit.png" >/dev/null 2>&1 && echo " shot OK"
|
||||
|
||||
echo ""
|
||||
echo "=== TEST 2: CRM → company drawer ==="
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
CRMREF=$(grep -i 'button "CRM"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
agent-browser click "$CRMREF" >/dev/null 2>&1
|
||||
agent-browser wait 2000 >/dev/null 2>&1
|
||||
# click Firmen tab
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
TABREF=$(grep -i 'tab "Firmen"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
echo " Firmen tab: $TABREF"
|
||||
[ -n "$TABREF" ] && agent-browser click "$TABREF" >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
# click first company row by finding a button/link in tbody
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
# find buttons that contain company names — use eval to click first tbody row
|
||||
agent-browser eval "document.querySelector('tbody tr')?.click()" >/dev/null 2>&1
|
||||
agent-browser wait 2000 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/v4-company-drawer.png" >/dev/null 2>&1 && echo " shot OK"
|
||||
DRAWER=$(agent-browser eval "!!document.querySelector('[role=dialog]') ? 'OPEN' : 'CLOSED'" 2>/dev/null | tail -1)
|
||||
echo " drawer state: $DRAWER"
|
||||
# close drawer
|
||||
agent-browser press Escape >/dev/null 2>&1
|
||||
agent-browser wait 500 >/dev/null 2>&1
|
||||
|
||||
echo ""
|
||||
echo "=== TEST 3: Create Deal modal ==="
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
# find the "Deal" button in the page header
|
||||
DEALBTN=$(grep -i 'button "Deal"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
echo " Deal button: $DEALBTN"
|
||||
[ -n "$DEALBTN" ] && agent-browser click "$DEALBTN" >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/v4-create-deal.png" >/dev/null 2>&1 && echo " shot OK"
|
||||
MODAL=$(agent-browser eval "!!document.querySelector('[role=dialog]') ? 'OPEN' : 'CLOSED'" 2>/dev/null | tail -1)
|
||||
echo " modal state: $MODAL"
|
||||
# fill the title input
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
TITLEREF=$(grep -iE 'textbox' /tmp/s.txt | grep -iE 'Titel|z.B' | head -1 | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
echo " title input: $TITLEREF"
|
||||
if [ -n "$TITLEREF" ]; then
|
||||
agent-browser fill "$TITLEREF" "E2E Test-Deal" >/dev/null 2>&1
|
||||
agent-browser wait 500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/v4-create-deal-filled.png" >/dev/null 2>&1 && echo " filled shot OK"
|
||||
fi
|
||||
agent-browser press Escape >/dev/null 2>&1
|
||||
agent-browser wait 500 >/dev/null 2>&1
|
||||
|
||||
echo ""
|
||||
echo "=== TEST 4: Finance → invoice dialog → finalize ==="
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
FINREF=$(grep -i 'button "Finanzen"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
agent-browser click "$FINREF" >/dev/null 2>&1
|
||||
agent-browser wait 2000 >/dev/null 2>&1
|
||||
agent-browser eval "document.querySelector('tbody tr')?.click()" >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/v4-invoice-dialog.png" >/dev/null 2>&1 && echo " shot OK"
|
||||
DIALOG=$(agent-browser eval "document.querySelector('[role=dialog]')?.textContent?.slice(0,120) || 'closed'" 2>/dev/null | tail -1)
|
||||
echo " dialog: $(echo "$DIALOG" | head -c 120)"
|
||||
agent-browser press Escape >/dev/null 2>&1
|
||||
agent-browser wait 500 >/dev/null 2>&1
|
||||
|
||||
echo ""
|
||||
echo "=== TEST 5: Projects → add task + log time ==="
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
PROJREF=$(grep -i 'button "Projekte"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
agent-browser click "$PROJREF" >/dev/null 2>&1
|
||||
agent-browser wait 2000 >/dev/null 2>&1
|
||||
# find the task input by placeholder
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
TASKINPUT=$(grep -iE 'textbox.*Neue' /tmp/s.txt | head -1 | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
echo " task input: $TASKINPUT"
|
||||
if [ -n "$TASKINPUT" ]; then
|
||||
agent-browser fill "$TASKINPUT" "E2E-Aufgabe" >/dev/null 2>&1
|
||||
agent-browser wait 500 >/dev/null 2>&1
|
||||
agent-browser find text "Hinzufügen" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
echo " task added"
|
||||
fi
|
||||
agent-browser screenshot --full "$SHOTS/v4-projects-task.png" >/dev/null 2>&1 && echo " shot OK"
|
||||
# switch to time tab and log time
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
TIMETAB=$(grep -i 'tab "Zeit"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
[ -n "$TIMETAB" ] && agent-browser click "$TIMETAB" >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
DESCINPUT=$(grep -iE 'textbox.*Beschreibung|textbox.*SSO' /tmp/s.txt | head -1 | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
MININPUT=$(grep -iE 'spinbutton.*Minuten|textbox.*90' /tmp/s.txt | head -1 | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
echo " desc input: $DESCINPUT, min input: $MININPUT"
|
||||
if [ -n "$DESCINPUT" ] && [ -n "$MININPUT" ]; then
|
||||
agent-browser fill "$DESCINPUT" "E2E-Zeitbuchung" >/dev/null 2>&1
|
||||
agent-browser fill "$MININPUT" "60" >/dev/null 2>&1
|
||||
agent-browser wait 500 >/dev/null 2>&1
|
||||
agent-browser find text "Buchen" click >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
echo " time logged"
|
||||
fi
|
||||
agent-browser screenshot --full "$SHOTS/v4-projects-time.png" >/dev/null 2>&1 && echo " time shot OK"
|
||||
|
||||
echo ""
|
||||
echo "=== TEST 6: Command palette global search ==="
|
||||
agent-browser eval "window.dispatchEvent(new KeyboardEvent('keydown',{key:'k',metaKey:true}))" >/dev/null 2>&1
|
||||
agent-browser wait 1000 >/dev/null 2>&1
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
PALINPUT=$(grep -iE 'textbox.*Suche|textbox.*Firmen' /tmp/s.txt | head -1 | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
echo " palette input: $PALINPUT"
|
||||
if [ -n "$PALINPUT" ]; then
|
||||
agent-browser fill "$PALINPUT" "Hamburg" >/dev/null 2>&1
|
||||
agent-browser wait 1500 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/v4-command-search.png" >/dev/null 2>&1 && echo " shot OK"
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
echo " --- search result count ---"
|
||||
grep -ciE "Firmen|Rechnungen|Projekte|Leads|Ansprech" /tmp/s.txt
|
||||
fi
|
||||
agent-browser press Escape >/dev/null 2>&1
|
||||
|
||||
echo ""
|
||||
echo "=== TEST 7: Leads → approve → convert ==="
|
||||
agent-browser snapshot -i >/tmp/s.txt 2>&1
|
||||
LEADSREF=$(grep -i 'button "Leads Finder' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1)
|
||||
agent-browser click "$LEADSREF" >/dev/null 2>&1
|
||||
agent-browser wait 2500 >/dev/null 2>&1
|
||||
# click Genehmigen
|
||||
agent-browser find text "Genehmigen" click >/dev/null 2>&1
|
||||
agent-browser wait 2000 >/dev/null 2>&1
|
||||
# now a Convert button should appear
|
||||
agent-browser screenshot --full "$SHOTS/v4-lead-approved.png" >/dev/null 2>&1 && echo " approved shot OK"
|
||||
agent-browser find text "In CRM konvertieren" click >/dev/null 2>&1
|
||||
agent-browser wait 3000 >/dev/null 2>&1
|
||||
agent-browser screenshot --full "$SHOTS/v4-lead-converted.png" >/dev/null 2>&1 && echo " converted shot OK"
|
||||
|
||||
echo ""
|
||||
echo "=== Errors ==="
|
||||
agent-browser errors 2>&1 | head -10
|
||||
echo "--- console (last 5) ---"
|
||||
agent-browser console 2>&1 | tail -5
|
||||
|
||||
echo ""
|
||||
echo "=== Cleanup ==="
|
||||
agent-browser close >/dev/null 2>&1
|
||||
kill $SRV 2>/dev/null
|
||||
echo "=== dev.log (errors only) ==="
|
||||
grep -iE "error|⨯|500" dev.log | tail -8
|
||||
echo ""
|
||||
echo "=== Screenshots ==="
|
||||
ls -la "$SHOTS"/v4-* 2>/dev/null | tail -12
|
||||
echo "=== DONE ==="
|
||||
Reference in new issue
Block a user