from typing import Any import pytest from pynecone.components.tags.tag import PropCond from pynecone.utils import wrap from pynecone.var import BaseVar @pytest.mark.parametrize( "prop1,prop2", [ (1, 3), (1, "text"), ("text1", "text2"), ], ) def test_validate_propcond(prop1: Any, prop2: Any): """Test the creation of conditional props. Args: prop1: truth condition value prop2: false condition value """ prop_cond = PropCond.create( cond=BaseVar(name="cond_state.value", type_=str), prop1=prop1, prop2=prop2 ) expected_prop1 = wrap(prop1, "'") if isinstance(prop1, str) else prop1 expected_prop2 = wrap(prop2, "'") if isinstance(prop2, str) else prop2 assert str(prop_cond) == ( "{cond_state.value ? " f"{expected_prop1} : " f"{expected_prop2}" "}" )