In test mode, send message to client even when no outputs change #1747
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Normally, if an input is changed but no outputs change, the Shiny process will not send anything to the client in response. With this change, when
shiny.testmode
is TRUE, then Shiny will send a response to the client in response to an input changing, even if no outputs change.This makes it possible for shinytest to detect when an input has been received and processed by the server, even if no outputs change. (Shinytest detects this by listening on the client for a message that contains a
values
field.)Here is a minimal sample app:
Normally, when running this app, if you move the slider multiple times, the R console prints this:
In test mode (with
options(shiny.testmode=TRUE)
), it prints this:This change will make (apparent) issues like rstudio/shinytest#106 much less common, and simplify the procedure of creating tests, because less manual intervention will be needed.