123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import reflex as rx
- class S(rx.State):
- """Example state for debounce tests."""
- value: str = ""
- def on_change(self, v: str):
- """Dummy on_change handler.
- Args:
- v: The changed value.
- """
- pass
- def test_full_control_implicit_debounce_editable():
- """DebounceInput is used when value and on_change are used together."""
- tag = rx.editable(
- value=S.value,
- on_change=S.on_change,
- )._render()
- assert tag.props["debounceTimeout"].name == "50"
- assert len(tag.props["onChange"].events) == 1
- assert tag.props["onChange"].events[0].handler == S.on_change
- assert tag.contents == ""
- def test_full_control_explicit_debounce_editable():
- """DebounceInput is used when user specifies `debounce_timeout`."""
- tag = rx.editable(
- on_change=S.on_change,
- debounce_timeout=33,
- )._render()
- assert tag.props["debounceTimeout"].name == "33"
- assert len(tag.props["onChange"].events) == 1
- assert tag.props["onChange"].events[0].handler == S.on_change
- assert tag.contents == ""
- def test_editable_no_debounce():
- """DebounceInput is not used for regular editable."""
- tag = rx.editable(
- placeholder=S.value,
- )._render()
- assert "debounceTimeout" not in tag.props
- assert tag.contents == ""
|