library(htmltools) # All page_*() functions are very thin wrappers around # shiny::*Page() at the moment (except for page_navbar(), which # which why we only have tests for page_navbar()) test_that("page_navbar()", { skip_if_not_installed("shiny") expect_snapshot( renderTags( page_navbar( title = div(h1("foo"), h2("bar")) ) )$head, cran = TRUE ) expect_snapshot( renderTags( page_navbar( title = "foo", window_title = "bar" ) )$head, cran = TRUE ) expect_snapshot( renderTags( page_sidebar(title = "foo") )$head, cran = TRUE ) }) test_that("page_sidebar()", { with_private_seed() expect_snapshot( renderTags( page_sidebar( title = "foo", window_title = "bar" ) )$head, cran = TRUE ) with_private_seed() expect_snapshot( renderTags( page_sidebar( "main", title = "Title", # Removes the {bsicons} icon sidebar = sidebar(open = "always"), "data-attr" = "here" ) )$html, cran = TRUE ) with_private_seed() skip_if_not_installed("bsicons", "0.1.0.9000") expect_snapshot( renderTags( page_sidebar( "main", title = "Title", sidebar = "side" ) )$html, # Don't run on CRAN since the output depends on {bsicons} cran = FALSE ) }) test_that("save_html() works on components and pages with a custom theme", { withr::local_options(list(htmltools.dir.version = FALSE)) withr::with_tempdir({ save_html( card("A simple card"), "card.html" ) expect_snapshot_file("card.html") }) withr::with_tempdir({ save_html( page( theme = bs_remove(bs_theme(), "bs3compat"), "A simple page without bs3compat dependencies" ), "modern-page.html" ) expect_snapshot_file("modern-page.html") }) }) test_that("page_*() functions can handle trailing commas", { expect_no_error( page("foo",) ) expect_no_error( page_fluid("foo",) ) expect_no_error( page_fixed("foo",) ) expect_no_error( page_fillable("foo",) ) expect_no_error( page_sidebar("foo",) ) expect_no_error( page_navbar(nav_panel("foo", "bar"),) ) })