test_that("layout_navbar_dark produces header with data-bs-theme dark and extracts theme item when shown", { a_dropdown <- shiny::tags$a(href = "#", `data-bs-toggle` = "dropdown", "D") li_dd <- shiny::tags$li(class = "nav-item", a_dropdown) theme_a <- shiny::tags$a(href = "#", class = "theme-toggle", "ThemeDark") theme_li <- shiny::tags$li(class = "mt-auto", shiny::tags$div(theme_a)) ul <- shiny::tags$ul(li_dd, theme_li) aside_tag <- shiny::tags$aside( class = "navbar navbar-vertical", shiny::tags$div( class = "container-fluid", shiny::tags$div(class = "collapse navbar-collapse", id = "sidebar-menu", ul) ) ) out_with <- layout_navbar_dark(aside_tag, NULL, tabler_body("B"), NULL, show_theme_button = TRUE) out_without <- layout_navbar_dark(aside_tag, NULL, tabler_body("B"), NULL, show_theme_button = FALSE) expect_true(grepl('data-bs-theme="dark"', as.character(out_with))) expect_true(grepl('aria-expanded="false"', as.character(out_with))) expect_false(grepl('ThemeDark', as.character(out_without))) })