"""gitea:Adriano/TieMeasureFlow#96 #122 - l'immagine del task visione sta in fit, senza scorrimento. Controllo sulle classi del template: pannello overflow-hidden, riquadro flex-1 min-h-0 che contiene a tutta altezza (#122: zoom, img e overlay stanno dentro il componente). """ from pathlib import Path TEMPLATE = Path(__file__).resolve().parents[1] / "templates" / "measure" / "task_execute.html" def _panel(): src = TEMPLATE.read_text(encoding="utf-8") start = src.rindex("' dentro le virgolette (es. "=>") non lo chiudono. pos = panel.index(marker) i = panel.rindex("<", 0, pos) quote = None for j in range(i, len(panel)): c = panel[j] if quote: quote = None if c == quote else quote elif c in "\"'": quote = c elif c == ">": return panel[i:j + 1] raise AssertionError(marker) def test_panel_does_not_scroll(): tag = _tag_with(_panel(), 'x-data="visionExecute()"') assert "overflow-hidden" in tag and "min-h-0" in tag assert "overflow-auto" not in tag def test_image_is_inside_tmf_viewer(): # #122: img, svg overlay, barra zoom e pan sono di : il template non ha piu' img/svg/viewport propri panel = _panel() viewer = _tag_with(panel, "tmf-viewer class") assert "block" in viewer and "w-full" in viewer and "h-full" in viewer assert ':src="shownImage"' in viewer assert "x-show" not in viewer # mai x-show e :style stringa sullo stesso elemento: x-show sta sul riquadro assert 'x-ref="img"' not in panel and 'x-ref="overlay"' not in panel and "') assert "overflow-y-auto" in outcome and "min-h-0" in outcome def test_quote_table_shows_nominal_and_tolerances(): # #117: la tabella quote del pannello mostra nominale e tolleranze come la schermata dei calibri panel = _panel() for marker in ("fmtTol(r.nominal)", "fmtTol(r.ltl)", "fmtTol(r.utl)", "fmtTol(r.lwl)", "fmtTol(r.uwl)"): assert marker in panel, marker assert "text-measure-fail" in panel and "text-measure-warning" in panel def test_overlay_script_loaded_before_vision_execute_and_viewer(): # #116 #122: vision_overlay.js prima di vision_execute.js; le etichette le disegna (viewerLabels via x-effect) src = TEMPLATE.read_text(encoding="utf-8") assert src.index("js/vision_overlay.js") < src.index("js/vision_execute.js") assert src.index("js/vision_overlay.js") < src.index("js/image_viewer.js") panel = _panel() assert "$el.labels = viewerLabels" in panel assert 'x-for="l in overlayLabels"' not in panel