Skip to content

Commit 025a996

Browse files
committed
add test for double set_state call
1 parent 3616278 commit 025a996

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

tests/test_core/test_hooks.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,42 @@ async def on_change(event):
252252
assert message_ref.current == "this is a test"
253253

254254

255+
def test_double_set_state(driver, display):
256+
@idom.component
257+
def SomeComponent():
258+
state_1, set_state_1 = idom.hooks.use_state(0)
259+
state_2, set_state_2 = idom.hooks.use_state(0)
260+
261+
def double_set_state(event):
262+
set_state_1(state_1 + 1)
263+
set_state_2(state_2 + 1)
264+
265+
return idom.html.div(
266+
idom.html.div({"id": "first", "value": state_1}, f"value is: {state_1}"),
267+
idom.html.div({"id": "second", "value": state_2}, f"value is: {state_2}"),
268+
idom.html.button({"id": "button", "onClick": double_set_state}, "click me"),
269+
)
270+
271+
display(SomeComponent)
272+
273+
button = driver.find_element_by_id("button")
274+
first = driver.find_element_by_id("first")
275+
second = driver.find_element_by_id("second")
276+
277+
assert first.get_attribute("value") == "0"
278+
assert second.get_attribute("value") == "0"
279+
280+
button.click()
281+
282+
assert first.get_attribute("value") == "1"
283+
assert second.get_attribute("value") == "1"
284+
285+
button.click()
286+
287+
assert first.get_attribute("value") == "2"
288+
assert second.get_attribute("value") == "2"
289+
290+
255291
async def test_use_effect_callback_occurs_after_full_render_is_complete():
256292
effect_triggered = idom.Ref(False)
257293
effect_triggers_after_final_render = idom.Ref(None)

0 commit comments

Comments
 (0)