feat(editor): editor prestatii unificat in modal - un select, un rand de chips (PRD 5.23)
Inlocuieste cele 3 controale de asociere cod RAR cu un singur rand de chips + un singur select care adauga instant la change. Stare = un hidden chips_state JSON versionat; post_form_chips redus la 2 actiuni (add/remove). Optgroup Sugestii (fuzzy/k-NN) + optiune "Nu se declara la RAR" in select, cu tinta implicita evidentiata si placeholder care o numeste. exclus persistat prin payload_json (treapta noua de precedenta in resolve_prestatii, round-trip complet). Siguranta: itemii exclusi sunt scosi din payload la momentul trimiterii (worker split_prestatii_excluse inainte de build_rar_payload + filtru defensiv), ca sa nu ajunga NICIODATA la RAR ca codPrestatie:null. Suita: 1680 passed, 1 skipped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -100,3 +100,35 @@ def test_normalizare_vin_nrinm_in_payload():
|
||||
|
||||
def test_sistem_reparat_default_null():
|
||||
assert build_rar_payload(_internal())["sistemReparat"] == "null"
|
||||
|
||||
|
||||
def test_item_exclus_nu_apare_in_payload():
|
||||
"""Un item adnotat exclus=True nu produce niciodata {codPrestatie: null} la RAR."""
|
||||
internal = {
|
||||
"vin": "WVWZZZ1KZAW000123",
|
||||
"nr_inmatriculare": "B999TST",
|
||||
"data_prestatie": "2026-06-15",
|
||||
"odometru_final": "123456",
|
||||
"prestatii": [
|
||||
{"cod_prestatie": "OE-1"},
|
||||
{"cod_prestatie": None, "cod_op_service": "200", "denumire": "Spalare", "exclus": True},
|
||||
],
|
||||
}
|
||||
p = build_rar_payload(internal)
|
||||
assert p["prestatii"] == [{"codPrestatie": "OE-1", "idPrezentare": None}]
|
||||
|
||||
|
||||
def test_item_fara_cod_prestatie_nu_apare_in_payload():
|
||||
"""Defense-in-depth: orice item fara cod (chiar neadnotat exclus) e sarit, niciodata null."""
|
||||
internal = {
|
||||
"vin": "WVWZZZ1KZAW000123",
|
||||
"nr_inmatriculare": "B999TST",
|
||||
"data_prestatie": "2026-06-15",
|
||||
"odometru_final": "123456",
|
||||
"prestatii": [
|
||||
{"cod_prestatie": "OE-1"},
|
||||
{"cod_prestatie": None, "cod_op_service": "200"},
|
||||
],
|
||||
}
|
||||
p = build_rar_payload(internal)
|
||||
assert p["prestatii"] == [{"codPrestatie": "OE-1", "idPrezentare": None}]
|
||||
|
||||
Reference in New Issue
Block a user