test_that("wa_rating requires input_id", { expect_error( shiny.webawesome:::wa_rating(), 'argument "input_id" is missing', fixed = TRUE ) }) test_that("wa_rating defaults render the minimal wrapper", { expect_exact_html( render_html(shiny.webawesome:::wa_rating("rating")), c('') ) }) test_that("wa_rating override render includes attrs", { expect_exact_html( render_html( shiny.webawesome:::wa_rating( "rating", value = 3, disabled = TRUE, label = "Stars", name = "score", custom_error = "Pick a rating", default_value = 2, max = 7, precision = 0.5, readonly = TRUE, required = TRUE, size = "large" ) ), c( paste0( '' ) ) ) }) test_that("wa_rating boolean and enum args validate exactly", { expect_error( shiny.webawesome:::wa_rating("rating", disabled = "yes"), "`disabled` must be TRUE, FALSE, or NULL.", fixed = TRUE ) expect_error( shiny.webawesome:::wa_rating("rating", size = "tiny"), "`size` must be one of ", fixed = TRUE ) expect_error( shiny.webawesome:::wa_rating("rating", required = "yes"), "`required` must be TRUE, FALSE, or NULL.", fixed = TRUE ) })