feat(5.16): aliniere lista/preview la mockup + fix lock seed la boot
Implementeaza planul aprobat din docs/raport-comparatie-mockup-5.16.md (T-1..T-9): - T-1/T-8: rand lista 4->2 linii (placuta primar + cod RAR · operatie · data + pill), fallback placuta, eticheta-problema 10px->--fs-xs (_submissions.html, base.html) - T-2: pill slim restilat fill-tint + dot 7px + text colorat per stare (base.html) - T-3: bug 4a coliziune pill/vehicul in preview — col-stare 104->140px (base.html) - T-4: preview 8->5 coloane (scos #, KM, Note; motivul -> title pe pill) - T-5: titlu sectiune "Trimiterile tale" -> sr-only (a11y) + badge/export discret - T-6: linia plan N/60 in corp doar pe avertizare; consum normal in badge+burger - T-7: guard chenar gol chips extra (_chips_prestatii.html) - T-9: "Anuleaza"->"Renunta"; nume operatie emfatic bold Fix boot: init_db reincarca seedul de ~17k operatii (5.18) pe FIECARE pornire, pe API + worker concurent -> "database is locked" la al doilea proces. Guard "_if_empty" pe mapping_suggestions (ca seed_nomenclator_if_empty) -> boot rapid, fara cursa. Teste actualizate (slim 2-linii, fallback placuta, plan in burger). TODOS.md: defer trackuit (eroare HTMX lista, retokenizare px, diacritice). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -495,7 +495,9 @@ def _insert_submissions_sent(account_id: int, n: int) -> None:
|
||||
|
||||
|
||||
def test_afisaj_plan_si_zile_trial(client):
|
||||
"""US-006: cont in trial Pro -> fragment status arata 'trial N zile ramase'.
|
||||
"""US-006 + T-6 (5.16): cont in trial Pro -> linia de plan din meniul burger (pagina
|
||||
completa) arata 'Plan: Pro · trial N zile ramase'. In starea normala (non-warn) plan_linie
|
||||
NU mai e rand in corpul fragmentului status — traieste in badge antet + burger.
|
||||
Contul nou primeste trial_until=now+30z automat la creare.
|
||||
"""
|
||||
acct_id, _ = _create_account_user("trialzile@test.com")
|
||||
@@ -505,7 +507,7 @@ def test_afisaj_plan_si_zile_trial(client):
|
||||
future = (datetime.now(timezone.utc) + timedelta(days=18, hours=12)).strftime("%Y-%m-%d %H:%M:%S")
|
||||
_set_trial_until(acct_id, future)
|
||||
|
||||
resp = client.get("/_fragments/status")
|
||||
resp = client.get("/", follow_redirects=True)
|
||||
assert resp.status_code == 200
|
||||
html = resp.text
|
||||
|
||||
@@ -516,7 +518,8 @@ def test_afisaj_plan_si_zile_trial(client):
|
||||
|
||||
|
||||
def test_afisaj_consum_lunar(client):
|
||||
"""US-006: cont free (fara trial) -> fragment status arata 'Gratuit · N/60 luna asta'."""
|
||||
"""US-006 + T-6 (5.16): cont free (fara trial) -> linia de plan din burger (pagina
|
||||
completa) arata 'Gratuit · N/60 luna asta'. Consumul normal nu mai e rand in corp."""
|
||||
acct_id, _ = _create_account_user("consumlun@test.com")
|
||||
_login(client, "consumlun@test.com", "parolasecreta10")
|
||||
|
||||
@@ -525,7 +528,7 @@ def test_afisaj_consum_lunar(client):
|
||||
# Insereaza 5 submissions sent luna asta
|
||||
_insert_submissions_sent(acct_id, 5)
|
||||
|
||||
resp = client.get("/_fragments/status")
|
||||
resp = client.get("/", follow_redirects=True)
|
||||
assert resp.status_code == 200
|
||||
html = resp.text
|
||||
|
||||
@@ -584,7 +587,8 @@ def test_copy_pluralizare_zi_zile(client):
|
||||
future_18 = (datetime.now(timezone.utc) + timedelta(days=18, hours=12)).strftime("%Y-%m-%d %H:%M:%S")
|
||||
_set_trial_until(acct_id, future_18)
|
||||
|
||||
resp = client.get("/_fragments/status")
|
||||
# T-6 (5.16): linia de plan (cu pluralizarea zilelor) traieste in burger pe pagina completa.
|
||||
resp = client.get("/", follow_redirects=True)
|
||||
assert resp.status_code == 200
|
||||
html = resp.text
|
||||
assert "18 zile" in html, f"'18 zile' lipseste. HTML: {html[:800]}"
|
||||
@@ -596,7 +600,7 @@ def test_copy_pluralizare_zi_zile(client):
|
||||
future_1 = (datetime.now(timezone.utc) + timedelta(days=1, hours=12)).strftime("%Y-%m-%d %H:%M:%S")
|
||||
_set_trial_until(acct_id, future_1)
|
||||
|
||||
resp = client.get("/_fragments/status")
|
||||
resp = client.get("/", follow_redirects=True)
|
||||
assert resp.status_code == 200
|
||||
html = resp.text
|
||||
assert "1 zi" in html, f"'1 zi' (singular) lipseste la o zi ramasa. HTML: {html[:800]}"
|
||||
|
||||
Reference in New Issue
Block a user