import pytest from reflex.components.core.html import Html from reflex.state import State def test_html_no_children(): with pytest.raises(ValueError): _ = Html.create() def test_html_many_children(): with pytest.raises(ValueError): _ = Html.create("foo", "bar") def test_html_create(): html = Html.create("
Hello !
") assert str(html.dangerouslySetInnerHTML) == '({ ["__html"] : "Hello !
" })' # pyright: ignore [reportAttributeAccessIssue] assert ( str(html) == 'jsx("div",{className:"rx-Html",dangerouslySetInnerHTML:({ ["__html"] : "Hello !
" })},)\n' ) def test_html_fstring_create(): class TestState(State): """The app state.""" myvar: str = "Blue" html = Html.create(f"Hello {TestState.myvar}!
") html_dangerouslySetInnerHTML = html.dangerouslySetInnerHTML # pyright: ignore [reportAttributeAccessIssue] assert ( str(html_dangerouslySetInnerHTML) == f'({{ ["__html"] : ("Hello "+{TestState.myvar!s}+"!
") }})' ) assert ( str(html) == f'jsx("div",{{className:"rx-Html",dangerouslySetInnerHTML:{html_dangerouslySetInnerHTML!s}}},)\n' )