| from __future__ import annotations | |
| import json | |
| import pytest | |
| from app.ui import parse_rid, pretty_json, _as_text, _table_rows | |
| def test_pretty_json_indents() -> None: | |
| assert '"vendor": "HEB"' in pretty_json('{"vendor":"HEB"}') | |
| assert '"a": 1' in pretty_json('{"a": 1}') | |
| def test_pretty_json_rejects_garbage() -> None: | |
| with pytest.raises(json.JSONDecodeError): | |
| pretty_json("not json") | |
| def test_parse_rid() -> None: | |
| assert parse_rid("3") == 3 | |
| assert parse_rid(3.0) == 3 | |
| assert parse_rid("") is None | |
| assert parse_rid(None) is None | |
| def test_as_text_joins_code_widget_lists() -> None: | |
| assert _as_text(["{", "}"]) == "{\n}" | |
| def test_table_rows_from_lists() -> None: | |
| assert _table_rows([["1", "HEB"]]) == [["1", "HEB"]] | |
| def test_phone_page_splits_camera_and_library() -> None: | |
| from app.ui import PHONE_HTML | |
| assert 'id="cam"' in PHONE_HTML | |
| assert 'id="lib"' in PHONE_HTML | |
| assert 'capture="environment"' in PHONE_HTML | |
| cam = PHONE_HTML.split('id="cam"', 1)[1].split("/>", 1)[0] | |
| lib = PHONE_HTML.split('id="lib"', 1)[1].split("/>", 1)[0] | |
| assert "capture=" in cam | |
| assert "capture=" not in lib | |
| assert "accept=\"image/*\"" in cam | |
| assert "input{display:none}" not in PHONE_HTML | |
| assert "opacity:0" in PHONE_HTML | |
| assert "/api/jobs/" in PHONE_HTML | |
| assert "Completed:" in PHONE_HTML | |
| assert "/api/inbox" in PHONE_HTML | |
| assert "Safari" in PHONE_HTML | |
| assert "heic" in PHONE_HTML.lower() | |