from pathlib import Path ROOT = Path(__file__).resolve().parents[2] def test_result_state_css_contracts() -> None: css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8") assert ".result-state" in css assert ".result-state-error" in css assert ".result-state-empty" in css assert ".result-state-loading" in css assert ".result-state-ready" in css assert ".result-state strong" in css assert ".result-state p" in css assert "overflow-wrap: anywhere;" in css def test_quality_and_export_panels_use_result_state_blocks() -> None: quality_panel = (ROOT / "frontend" / "src" / "components" / "quality" / "QualityResultsPanel.tsx").read_text( encoding="utf-8" ) export_center = (ROOT / "frontend" / "src" / "components" / "exports" / "ExportCenter.tsx").read_text( encoding="utf-8" ) assert 'className="result-state result-state-error"' in quality_panel assert 'className="result-state result-state-empty"' in quality_panel assert 'className="result-state result-state-error"' in export_center assert 'className="result-state result-state-empty"' in export_center assert 'className="result-state result-state-loading"' in export_center def test_ai_labs_use_result_state_blocks() -> None: detection_lab = (ROOT / "frontend" / "src" / "components" / "detection" / "DetectionLab.tsx").read_text( encoding="utf-8" ) segmentation_lab = ( ROOT / "frontend" / "src" / "components" / "segmentation" / "SegmentationLab.tsx" ).read_text(encoding="utf-8") for content in (detection_lab, segmentation_lab): assert 'className="result-state result-state-loading"' in content assert 'className="result-state result-state-error"' in content assert 'className="result-state result-state-empty"' in content assert 'className="result-state result-state-ready"' in content