Skip to content

Add a method input() for simulating text input on form elements - #17

Open
hovinen wants to merge 5 commits into
DioxusLabs:mainfrom
hovinen:support-form-input-events
Open

Add a method input() for simulating text input on form elements#17
hovinen wants to merge 5 commits into
DioxusLabs:mainfrom
hovinen:support-form-input-events

Conversation

@hovinen

@hovinen hovinen commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

This uses a new function synthetic_form_event in the dioxus-native-dom
crate to generate the event data. It works analogously to the existing
click() method.

This uses DioxusLabs/dioxus#5750 and builds on #16.

Previously, effects would not execute and cause re-rendering of the DOM
after the initial render or after processing an event. As a result, a
test would have to run ane extra `pump()` in some cases, expecially when
an effect performed some kind of initialization which an event handler
needs to run correctly. This is not the best developer experience.

This adds some calls to both the initial render and the event handler so
that effects are processed and the DOM re-rendered based on those. The
tests then get a more stable state after each DOM interaction.

This modifies two of the doctests to make the event handlers (which were
claimed to be asynchronous but actually fall under the above rule) truly
asynchronous.
Previously, tests would have to invoke `build()` on `DocumentTester` to
trigger the initial DOM render before they could interact with the DOM.
This is easy to forget and can lead to confusion.

This makes the call to `build()` implicit and changes the method to be
private. Tests can now interact with `DocumentTester` immediately after
invoking `render()`.
This uses a new function `synthetic_form_event` in the dioxus-native-dom
crate to generate the event data. It works analogously to the existing
`click()` method.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant