fix(quick-261005-d5d): Kalender-Test bricht bei unerreichbarem Exchange nach 15 s ab

EWS-Aufrufe ueber httpntlm bekommen eine eigene 15-s-Zeitgrenze;
httpreqs timeout greift waehrend des Verbindungsaufbaus nicht
(gemessen 134 s). Netzfehler liefern im Test den Schluessel
'unreachable', das Formular meldet 'nicht erreichbar' statt
'Zugangsdaten pruefen'.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-05 09:29:25 +02:00
parent 94bd2a4a04
commit e49d4c7c9d
13 changed files with 305 additions and 13 deletions
@@ -0,0 +1,16 @@
---
quick_id: 261005-d5d
slug: kalender-test-zeitgrenze
date: 2026-10-05
---
# Kalender-Test: Zeitgrenze + Meldung „nicht erreichbar“
Anlass 05.10.: Exchange auf alpha/live nicht erreichbar (interner DNS -> 172.16.0.3), „Verbindung testen“ hing ~2 min auf „wird geprueft“, danach „Adresse und Zugangsdaten pruefen“.
## Task 1 — API
- EWS-Aufrufe (httpntlm) mit 15 s Zeitgrenze.
- Netzfehler (TIMEOUT, ETIMEDOUT, ECONNREFUSED, ...) im Test als `CalendarSourceUnreachableError`; Service liefert Schluessel `unreachable`.
## Task 2 — Web
- Formular zeigt bei `unreachable` eigene Meldung (de/en).
@@ -0,0 +1,13 @@
---
quick_id: 261005-d5d
status: complete
date: 2026-10-05
---
# 261005-d5d: Kalender-Test Zeitgrenze — SUMMARY
- `ntlmPost` (exchange.provider.ts): eigene 15-s-Zeitgrenze per Timer, zusaetzlich `timeout` an httpntlm. httpreqs `timeout` allein greift NICHT waehrend des Verbindungsaufbaus ueber den Keep-alive-Agenten — echter Lauf gegen 172.16.0.3 dauerte damit noch 134,5 s; erst der eigene Timer brachte 15,0 s. Unit-Test haette das nicht gefunden (Stub), deshalb echter Lauf im lokalen Container.
- `CalendarSourceUnreachableError` + `isNetworkUnreachableError` (calendar.service.ts); `testConnection`/`testConnectionFromConfig` liefern `error: 'unreachable'`, lastSyncError „Server not reachable“.
- Formular: `formTestUnreachable` statt `formTestFailed`.
- Nachweis (lokaler Container, kompilierter Provider): 172.16.0.3 -> nicht erreichbar nach 15,0 s; owa.ctl.de mit falschem Passwort -> erreichbar/abgelehnt 0,0 s. Tests api 2219+, web 1372 gruen.
- Gleiches Muster steckt in `inbox/exchange-inbox.provider.ts` (eigenes httpntlm ohne Zeitgrenze) — nicht angefasst.