Files
shiny/tests/testthat/test-update-input.R
John Coene db9f210257 Allow update input labels with HTML (#3996)
* fix: allow update input labels with HTML fixes #3995

* refactor: use processDeps and renderContent

* fix: formatting on lists

* fix: put spaces between infix

* chore: generated files

* fix: update input tests

* revert: generated javascript and sourcemaps

* fix: empty label check

* Remove package-lock

* Undo unintended change when merging

* Update news

* Simplify

---------

Co-authored-by: Carson <cpsievert1@gmail.com>
2025-06-16 11:01:44 -05:00

36 lines
1.2 KiB
R

test_that("Radio buttons and checkboxes work with modules", {
createModuleSession <- function(moduleId) {
session <- as.environment(list(
ns = NS(moduleId),
sendInputMessage = function(inputId, message) {
session$lastInputMessage = list(id = inputId, message = message)
}
))
class(session) <- "ShinySession"
session
}
sessA <- createModuleSession("modA")
updateRadioButtons(sessA, "test1", label = "Label", choices = letters[1:5])
resultA <- sessA$lastInputMessage
expect_equal(resultA$id, "test1")
expect_equal(as.character(resultA$message$label$html), "Label")
expect_equal(resultA$message$value, "a")
expect_match(resultA$message$options, '"modA-test1"')
expect_no_match(resultA$message$options, '"test1"')
sessB <- createModuleSession("modB")
updateCheckboxGroupInput(sessB, "test2", label = icon("eye"), choices = LETTERS[1:5])
resultB <- sessB$lastInputMessage
expect_equal(resultB$id, "test2")
expect_length(resultB$message$label, 2)
expect_s3_class(resultB$message$label$html, "html")
expect_null(resultB$message$value)
expect_match(resultB$message$options, '"modB-test2"')
expect_no_match(resultB$message$options, '"test2"')
})