keys-Auto-Receipts-Studio / tests /test_ui_edit.py
drowzeys's picture
Upload folder using huggingface_hub
676f5d4 verified
Raw
History Blame Contribute Delete
1.49 kB
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()