Skip to content

Eliminate the need to call build() on DocumentTester - #16

Open
hovinen wants to merge 3 commits into
DioxusLabs:mainfrom
hovinen:eliminate-need-to-invoke-build
Open

Eliminate the need to call build() on DocumentTester#16
hovinen wants to merge 3 commits into
DioxusLabs:mainfrom
hovinen:eliminate-need-to-invoke-build

Conversation

@hovinen

@hovinen hovinen commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

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 is based on #15 .

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()`.
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