feat: Notruf — Telefon in SMS, Geo-Diagnose + Geräteerkennung; Sprach-UI-Fix
Notruf (Punkte 1+2):
- SMS enthält jetzt die Telefonnummer(n) der Person (Mobil/Festnetz).
- Geo-Diagnose (P1): captureGeo liefert bei Fehlschlag einen Grund
(Permission/insecure/Timeout/Code) statt still null; geht als geo_error an
/api/emergency, landet in E-Mail ("Standort nicht verfügbar (<Grund>)") und
im Server-Log (logger.info) — Fehlversuche sind jetzt erklärbar.
- Geräteerkennung (P2): device {mobile, platform} via User-Agent Client Hints
(Fallback UA-String); E-Mail zeigt "Auslösegerät: Mobilgerät/Festgerät (…)".
- schemas: DeviceInfo + EmergencyRequest.geo_error/device; chat reicht durch.
- Tests: Telefon in SMS, geo_error + Geräte-Zeile in E-Mail (240 grün).
Sprach-Bug (Punkt 3): allowed_languages wurde im Menü nur via <option hidden>
gefiltert, was manche Browser bei <select> ignorieren -> Sprachen blieben
wählbar. Jetzt zusätzlich opt.disabled (robust, nicht wählbar); Backend klemmt
ohnehin serverseitig.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
2a013ae9fe
commit
5d05e081d4
5 changed files with 104 additions and 34 deletions
|
|
@ -106,3 +106,21 @@ def test_record_manual_emergency_uses_profile(monkeypatch):
|
|||
assert "Frieda Schlüter" in captured["subject"]
|
||||
assert "Diabetes" in captured["body"]
|
||||
assert MAPS in captured["body"]
|
||||
|
||||
|
||||
def test_sms_includes_phone():
|
||||
p = em._profile(FakeUser(FULL_PREFS))
|
||||
sms = em._emergency_texts(p, GEO)["sms"]
|
||||
assert "Tel: +4915100000000" in sms
|
||||
|
||||
|
||||
def test_email_geo_error_shown():
|
||||
p = em._profile(FakeUser(FULL_PREFS))
|
||||
body = em._email_body(p, None, "code 2: POSITION_UNAVAILABLE", None)
|
||||
assert "nicht verfügbar" in body and "code 2" in body
|
||||
|
||||
|
||||
def test_email_device_line_mobile_and_desktop():
|
||||
p = em._profile(FakeUser(FULL_PREFS))
|
||||
assert "Festgerät" in em._email_body(p, GEO, None, {"mobile": False, "platform": "Linux"})
|
||||
assert "Mobilgerät" in em._email_body(p, GEO, None, {"mobile": True, "platform": "Android"})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue