docs(quick-261009-p0m): Sicherheitsprotokoll und CI-Pruefungen
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
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>
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
#!/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)"
|
||||
Reference in New Issue
Block a user