refactor: comentarii strict functionale, fara referinte PRD/stories

Curatare globala a comentariilor si docstring-urilor (app, tools, teste,
scripturi): eliminate referintele la PRD-uri, US-xxx, task-uri istorice si
review-uri; pastrata doar informatia functionala, formulata scurt. Regula
adaugata in CLAUDE.md (sectiunea Stil). Fara modificari de cod sau comportament.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-07-06 13:48:38 +00:00
parent 86408887e5
commit 44f261e269
226 changed files with 1313 additions and 1760 deletions

View File

@@ -1,23 +1,16 @@
"""Teste US-008 (PRD 5.11) — Auto-refresh dupa actiuni proprii.
"""Teste pentru auto-refresh dupa actiuni proprii pe lista de trimiteri.
Comportament dorit:
Comportament:
1. Dupa actiune proprie (mapare inline, corectie, repune, commit), lista
Trimiteri se reincarca automat, fara click pe Reincarca.
Mecanism: server emite HX-Trigger: trimiteriChanged; #submissions-wrap
asculta 'trimiteriChanged from:body' si re-fetches imediat.
2. Filtrul activ si pagina curenta NU se reseteaza la auto-refresh.
Mecanism: hx-include="#filtre-trimiteri" pe #submissions-wrap.
3. Pollerul de fundal face auto-refresh direct la date noi (versiune diferita)
in loc sa afiseze nudge-ul "Date noi. Reincarca".
Decizie (documentata): nudge eliminat. Distinctia own vs externe nu e posibila
pe client fara sesiune dedicata — auto-refresh e mai consistent si mai simplu.
4. Elementul #nudge-trimiteri eliminat din template (dead code dupa schimbarea poller).
TDD: testele 1-2 sunt GREEN (comportament deja implementat — regresie).
testele 3-4 sunt RED→GREEN (implementate in aceeasi sesiune).
testele 5-6 (test_actiune_proprie_reincarca_automat, test_nudge_nu_mai_blocheaza)
sunt adaugate cu numele exacte din spec PRD (GREEN de la primul run — implementarea
existenta le satisface).
3. Pollerul de fundal face auto-refresh direct la date noi (versiune diferita),
fara nudge intermediar: distinctia intre schimbare proprie si externa nu e
posibila pe client fara sesiune dedicata, iar auto-refresh e mai simplu.
4. Elementul #nudge-trimiteri e eliminat din template.
"""
from __future__ import annotations
@@ -80,10 +73,6 @@ def _add_nomenclator(cod: str = "R-FRANE", nume: str = "Reparatie frane") -> Non
conn.close()
# --------------------------------------------------------------------------- #
# Test 1 — GREEN (regresie): submissions-wrap reincarca la trimiteriChanged #
# --------------------------------------------------------------------------- #
def test_submissions_wrap_reincarca_la_trimiteriChanged(client):
"""#submissions-wrap se reincarca automat la evenimentul trimiteriChanged.
@@ -108,10 +97,6 @@ def test_submissions_wrap_reincarca_la_trimiteriChanged(client):
)
# --------------------------------------------------------------------------- #
# Test 2 — GREEN (regresie): filtrul nu se reseteaza la auto-refresh #
# --------------------------------------------------------------------------- #
def test_submissions_wrap_pastreaza_filtrul_la_auto_refresh(client):
"""Auto-refresh-ul nu reseteaza filtrul activ sau pagina curenta.
@@ -131,47 +116,27 @@ def test_submissions_wrap_pastreaza_filtrul_la_auto_refresh(client):
)
# --------------------------------------------------------------------------- #
# Test 3 — RED: pollerul face auto-refresh, nu arata nudge #
# --------------------------------------------------------------------------- #
def test_poller_auto_refresh_nu_nudge(client):
"""Pollerul de fundal face auto-refresh la date noi, NU afiseaza nudge.
Pattern curent (RED): cand versiunea difera, pollerul face nudge.hidden = false.
Pattern dorit (GREEN): cand versiunea difera, pollerul cheama reincarcaTrimiteri()
care re-fetches #submissions-wrap pastrand filtrul curent.
Decizie: nudge eliminat complet (nu ramane 'doar pentru schimbari externe')
pentru ca distinctia propriu vs extern e imposibila pe client fara
mecanism de sesiune dedicat (too complex, no gain).
Cand versiunea difera, pollerul cheama reincarcaTrimiteri() care re-fetches
#submissions-wrap pastrand filtrul curent, in loc sa arate un nudge.
"""
r = client.get("/")
assert r.status_code == 200, r.text
html = r.text
# Pollerul NU mai seteaza nudge.hidden = false in handler-ul de versiune diferita.
# (Prezenta acestui pattern indica implementarea veche — RED.)
assert "nudge.hidden = false" not in html, (
"Pollerul inca arata nudge in loc de auto-refresh — "
"schimbati 'nudge.hidden = false' cu 'reincarcaTrimiteri()' in base.html"
)
# --------------------------------------------------------------------------- #
# Test 4 — RED: nudge-ul e eliminat din template #
# --------------------------------------------------------------------------- #
def test_nudge_eliminat_din_lista(client):
"""Elementul #nudge-trimiteri este eliminat din template-ul listei.
Dupa ce pollerul trece la auto-refresh, nudge-ul devine dead code.
Eliminarea lui simplifica template-ul si elimina un element de UI confuz
(utilizatorul vedea 'Date noi. Reincarca' chiar daca lista era actuala,
din cauza refreshului propriu care nu actualiza versiunea fast enough).
Nota: _coada.html se randeaza doar cand sunt submission-uri. Semanarea
asigura ca _coada.html e inclus in raspuns (altfel testul ar pasa vacuos).
Semanarea unui submission asigura ca _coada.html e inclus in raspuns
(altfel testul ar pasa vacuos).
"""
_add_submission()
@@ -184,22 +149,16 @@ def test_nudge_eliminat_din_lista(client):
)
# --------------------------------------------------------------------------- #
# Test 5 (spec PRD): actiune proprie reincarca automat fara click Reincarca #
# --------------------------------------------------------------------------- #
def test_actiune_proprie_reincarca_automat(client):
"""Dupa o actiune proprie (mapare inline), lista se reincarca automat.
Verifica doua componente ale mecanismului:
1. Server-side: POST la mapare inline returneaza HX-Trigger: trimiteriChanged
in headerele raspunsului (indiferent de starea noua a submission-ului).
2. Client-side: #submissions-wrap asculta 'trimiteriChanged from:body' in
hx-trigger — HTMX va declansa re-fetch imediat la primirea headerului,
fara click pe Reincarca.
1. Server-side: POST la mapare inline returneaza HX-Trigger: trimiteriChanged.
2. Client-side: #submissions-wrap asculta 'trimiteriChanged from:body' si
declanseaza re-fetch imediat la primirea headerului.
Testeaza calea mapare-inline; corectie/repune/commit sunt acoperite similar
(toate emit HX-Trigger: trimiteriChanged — verificate in test_import_commit.py).
(verificate in test_import_commit.py).
"""
_add_nomenclator("R-FRANE", "Reparatie frane")
sub_id = _add_submission(
@@ -207,21 +166,18 @@ def test_actiune_proprie_reincarca_automat(client):
payload={"prestatii": [{"cod_op_service": "OP-FRANE"}]},
)
# POST mapare inline — emite HX-Trigger: trimiteriChanged
r = client.post(
f"/trimitere/{sub_id}/mapeaza",
data={"csrf_token": "", "cod_op_service": "OP-FRANE", "cod_prestatie": "R-FRANE"},
)
assert r.status_code == 200, r.text
# Server emite triggerul — HTMX va declansa auto-refresh pe client
hx = r.headers.get("HX-Trigger", "")
assert "trimiteriChanged" in hx, (
f"Mapare inline nu emite HX-Trigger: trimiteriChanged — "
f"lista nu se va reincarca automat. Header primit: {hx!r}"
)
# Client-side: #submissions-wrap asculta triggerul (markup existent in template)
r_acasa = client.get("/_fragments/acasa")
assert "trimiteriChanged from:body" in r_acasa.text, (
"#submissions-wrap nu asculta 'trimiteriChanged from:body'"
@@ -229,42 +185,28 @@ def test_actiune_proprie_reincarca_automat(client):
)
# --------------------------------------------------------------------------- #
# Test 6 (spec PRD): nudge nu mai blocheaza actualizarea #
# --------------------------------------------------------------------------- #
def test_nudge_nu_mai_blocheaza_actualizarea(client):
"""Nudge-ul 'Date noi. Reincarca' nu mai poate bloca actualizarea listei.
Inainte de US-008, mecanismul era: poller detecteaza versiune diferita
arata nudge → utilizatorul trebuia sa apese 'Reincarca' manual.
Dupa US-008, nudge-ul e eliminat (decizie documentata mai jos) si pollerul
cheama direct reincarcaTrimiteri() → actualizare automata, fara click.
Decizie privind nudge: ELIMINAT complet (nu pastrat pentru schimbari externe).
Rationale: distinctia 'actiune proprie vs schimbare externa' nu e posibila
pe client fara mecanism dedicat de sesiune. Auto-refresh periodic (la versiune
diferita) acopera si schimbarile externe (worker, alt browser) fara friction.
Pollerul cheama direct reincarcaTrimiteri() la versiune diferita
actualizare automata, fara ca utilizatorul sa trebuiasca sa apese un buton.
"""
_add_submission() # are_trimiteri=True → _coada.html se randeaza
_add_submission()
r_pagina = client.get("/_fragments/acasa")
assert r_pagina.status_code == 200, r_pagina.text
html = r_pagina.text
# Nudge eliminat: nu mai poate bloca utilizatorul cu un banner "Reincarca"
assert "nudge-trimiteri" not in html, (
"#nudge-trimiteri inca exista — poate bloca actualizarea (US-008 il elimina)"
"#nudge-trimiteri inca exista — poate bloca actualizarea listei"
)
# Pollerul JS nu mai seteaza nudge.hidden = false: nu poate "bloca" prin afisare nudge
r_home = client.get("/")
assert r_home.status_code == 200, r_home.text
assert "nudge.hidden = false" not in r_home.text, (
"Pollerul JS inca poate afisa nudge-ul — schimbati cu reincarcaTrimiteri()"
)
# Pollerul cheama reincarcaTrimiteri() la versiune diferita (auto-refresh)
assert "reincarcaTrimiteri" in r_home.text, (
"reincarcaTrimiteri() lipseste din poller — auto-refresh nu va functiona"
)