reflex/tests/components/core/test_html.py
Andrew Davies 2c4310d9ff
Use tailwind typography plugin by default (#3593)
Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
2024-09-23 18:18:05 -07:00

42 lines
1.1 KiB
Python

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("<p>Hello !</p>")
assert str(html.dangerouslySetInnerHTML) == '({ ["__html"] : "<p>Hello !</p>" })' # type: ignore
assert (
str(html)
== '<div className={"rx-Html prose"} dangerouslySetInnerHTML={({ ["__html"] : "<p>Hello !</p>" })}/>'
)
def test_html_fstring_create():
class TestState(State):
"""The app state."""
myvar: str = "Blue"
html = Html.create(f"<p>Hello {TestState.myvar}!</p>")
assert (
str(html.dangerouslySetInnerHTML) # type: ignore
== f'({{ ["__html"] : ("<p>Hello "+{str(TestState.myvar)}+"!</p>") }})'
)
assert (
str(html)
== f'<div className={{"rx-Html prose"}} dangerouslySetInnerHTML={{{str(html.dangerouslySetInnerHTML)}}}/>' # type: ignore
)