Trace les changements de réglages dans le journal utilisateur
Toute modification des paramètres (topic/serveur/jeton ntfy, plages
horaires, régénération du token de présence Tasker) est désormais
enregistrée dans /logs sous un nouveau type "Réglages", avec un onglet
dédié. Chaque entrée résume ce qui a changé (valeurs des plages, plage
des rappels, topic, jeton défini/vide, URLs invalidées), pour aider à
diagnostiquer a posteriori un problème de configuration.
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
This commit is contained in:
@ -299,3 +299,50 @@ def test_regenerate_preserves_other_notif_fields():
|
||||
assert after["ntfy_topic"] == "topic-x"
|
||||
assert after["ntfy_server"] == "https://ntfy.arkel.fr"
|
||||
assert after["ntfy_token"] == "tk_xyz"
|
||||
|
||||
|
||||
# ── Changements de paramètres tracés dans le journal ─────────────────────────
|
||||
|
||||
def test_settings_save_logged():
|
||||
"""Sauvegarder les réglages ntfy doit écrire une entrée de journal."""
|
||||
models.save_notif_config("alice", ntfy_topic="t", ntfy_server="https://ntfy.sh")
|
||||
before = len([l for l in models.load_logs("alice") if l["type"] == "settings"])
|
||||
client.post("/settings", cookies=COOKIES, data={
|
||||
"ntfy_topic": "topic-new",
|
||||
"ntfy_server": "https://ntfy.arkel.fr",
|
||||
"ntfy_token": "tk_abc",
|
||||
"rappel_debut_h": "8",
|
||||
"rappel_fin_h": "19",
|
||||
})
|
||||
after = [l for l in models.load_logs("alice") if l["type"] == "settings"]
|
||||
assert len(after) == before + 1
|
||||
latest = after[0]
|
||||
assert latest["event"] == "Réglages ntfy"
|
||||
assert "topic-new" in latest["message"]
|
||||
assert "ntfy.arkel.fr" in latest["message"]
|
||||
|
||||
|
||||
def test_settings_plages_save_logged():
|
||||
"""Sauvegarder les plages horaires doit écrire une entrée de journal."""
|
||||
before = len([l for l in models.load_logs("alice") if l["type"] == "settings"])
|
||||
client.post("/settings/plages", cookies=COOKIES, data={
|
||||
"matin_debut": "09:00", "matin_fin": "12:00",
|
||||
"aprem_debut": "14:00", "aprem_fin": "17:00",
|
||||
"pause_dejeuner_fin": "13:30",
|
||||
"arrivee_visee": "", "depart_vise": "",
|
||||
})
|
||||
after = [l for l in models.load_logs("alice") if l["type"] == "settings"]
|
||||
assert len(after) == before + 1
|
||||
latest = after[0]
|
||||
assert latest["event"] == "Plages horaires"
|
||||
assert "09:00" in latest["message"]
|
||||
|
||||
|
||||
def test_regenerate_presence_token_logged():
|
||||
"""Régénérer le token de présence doit écrire une entrée de journal."""
|
||||
before = len([l for l in models.load_logs("alice") if l["type"] == "settings"])
|
||||
client.post("/settings/regenerate-presence-token", cookies=COOKIES)
|
||||
after = [l for l in models.load_logs("alice") if l["type"] == "settings"]
|
||||
assert len(after) == before + 1
|
||||
latest = after[0]
|
||||
assert "régénéré" in latest["event"].lower()
|
||||
|
||||
Reference in New Issue
Block a user