d62e6c2dbe
Tessera CI/CD / Lint & Type Check (push) Successful in 53s
Tessera CI/CD / Tests (push) Failing after 2m14s
Tessera CI/CD / Desktop-Pakete bauen (push) Has been skipped
Tessera CI/CD / Build & Publish Images (push) Has been skipped
Tessera CI/CD / Sicherheitspruefung (nur Bericht) (push) Has been skipped
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
43 lines
1.5 KiB
Bash
Executable File
43 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Mail-Rauchtest (quick-261009-p0m, Aufgabe 4): beweist, dass die API nach dem Austausch von
|
|
# nodemailer und dem Entfernen des Mailer-Pakets weiterhin Mails an den lokalen Mailhog zustellt.
|
|
# Nur Testwerte (lokaler Stack, admin/admin123), liest keine .env-Dateien.
|
|
set -euo pipefail
|
|
|
|
LIB=".planning/quick/261008-mzu-modul-nextcloud-dateien-eigenstaendiger-/e2e/e2e-lib.sh"
|
|
cd "$(git rev-parse --show-toplevel)"
|
|
# shellcheck source=/dev/null
|
|
source "$LIB"
|
|
|
|
MAILHOG=${MAILHOG:-http://localhost:8025}
|
|
JAR="$E2E_TMP/mail-admin.jar"
|
|
|
|
mail_total() {
|
|
curl -sf "$MAILHOG/api/v2/messages?limit=1" \
|
|
| python3 -I -c 'import json,sys; print(json.load(sys.stdin)["total"])'
|
|
}
|
|
|
|
e2e_login "$JAR"
|
|
# /auth/me liefert keine E-Mail-Adresse; die Adresse des angemeldeten Admins steht in /users.
|
|
code=$(e2e_status "$JAR" GET "$API/users" "" "$E2E_TMP/users.out")
|
|
e2e_expect 200 "$code" "users"
|
|
email=$(python3 -I -c 'import json,sys
|
|
d=json.load(open(sys.argv[1]))
|
|
d=d if isinstance(d,list) else d.get("items",[])
|
|
print(next((u.get("email") or "" for u in d if u.get("username")=="admin"),""))' "$E2E_TMP/users.out")
|
|
[ -n "$email" ] || e2e_fail "Admin hat keine E-Mail-Adresse"
|
|
|
|
before=$(mail_total)
|
|
code=$(e2e_status "$JAR" POST "$API/auth/request-reset" "{\"email\":\"$email\"}")
|
|
e2e_expect 200 "$code" "request-reset"
|
|
|
|
for _ in $(seq 1 20); do
|
|
now=$(mail_total)
|
|
if [ "$now" -gt "$before" ]; then
|
|
echo "mail ok"
|
|
exit 0
|
|
fi
|
|
sleep 1
|
|
done
|
|
e2e_fail "keine neue Mail in Mailhog nach 20 Sekunden (vorher $before)"
|