test_that("wa_avatar defaults render the minimal wrapper", {
expect_exact_html(
render_html(shiny.webawesome:::wa_avatar()),
c("")
)
})
test_that("wa_avatar override render includes attrs and icon slot", {
expect_exact_html(
render_html(
shiny.webawesome:::wa_avatar(
id = "avatar",
label = "Avatar",
dir = "rtl",
image = "avatar.png",
initials = "AV",
lang = "en",
loading = "lazy",
shape = "square",
icon = "Icon"
)
),
c(
paste0(
''
),
' Icon',
""
)
)
})
test_that("wa_avatar enum args validate exactly", {
enum_cases <- list(
list(arg = "loading", attr = "loading", valid = "eager", invalid = "auto"),
list(arg = "shape", attr = "shape", valid = "rounded", invalid = "hex")
)
for (case in enum_cases) {
valid_tag <- do.call(
shiny.webawesome:::wa_avatar,
stats::setNames(list(case$valid), case$arg)
)
expect_exact_html(
render_html(valid_tag),
c(sprintf('', case$attr, case$valid))
)
expect_error(
do.call(
shiny.webawesome:::wa_avatar,
stats::setNames(list(case$invalid), case$arg)
),
sprintf("`%s` must be one of ", case$arg),
fixed = TRUE
)
}
})