Skip to content

Commit 0b14bc8

Browse files
committed
Add one more test
1 parent 5ce5c32 commit 0b14bc8

File tree

1 file changed

+49
-3
lines changed

1 file changed

+49
-3
lines changed

tests/test_core/test_events.py

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,9 @@ def App():
232232
{
233233
"id": "the-button",
234234
"onClick": """javascript: () => {
235-
let parent = document.getElementById("the-parent");
236-
parent.appendChild(document.createElement("div"));
237-
}""",
235+
let parent = document.getElementById("the-parent");
236+
parent.appendChild(document.createElement("div"));
237+
}""",
238238
},
239239
"Click Me",
240240
),
@@ -254,3 +254,49 @@ def App():
254254
generated_divs = await parent.query_selector_all("div")
255255

256256
assert len(generated_divs) == 3
257+
258+
259+
async def test_javascript_event_after_state_update(display: DisplayFixture):
260+
@reactpy.component
261+
def App():
262+
click_count, set_click_count = reactpy.hooks.use_state(0)
263+
return reactpy.html.div(
264+
{"id": "the-parent"},
265+
reactpy.html.button(
266+
{
267+
"id": "button-with-reactpy-event",
268+
"onClick": lambda _: set_click_count(click_count + 1),
269+
},
270+
"Click Me",
271+
),
272+
reactpy.html.button(
273+
{
274+
"id": "button-with-javascript-event",
275+
"onClick": """javascript: () => {
276+
let parent = document.getElementById("the-parent");
277+
parent.appendChild(document.createElement("div"));
278+
}""",
279+
},
280+
"No, Click Me",
281+
),
282+
*[reactpy.html.div("Clicked") for _ in range(click_count)],
283+
)
284+
285+
await display.show(lambda: App())
286+
287+
button1 = await display.page.wait_for_selector(
288+
"#button-with-reactpy-event", state="attached"
289+
)
290+
await button1.click()
291+
await button1.click()
292+
await button1.click()
293+
button2 = await display.page.wait_for_selector(
294+
"#button-with-javascript-event", state="attached"
295+
)
296+
await button2.click()
297+
await button2.click()
298+
await button2.click()
299+
parent = await display.page.wait_for_selector("#the-parent", state="attached")
300+
generated_divs = await parent.query_selector_all("div")
301+
302+
assert len(generated_divs) == 6

0 commit comments

Comments
 (0)