local_disable_cache()
test_that("Can access the sass behind all versions and Bootswatch themes", {
skip_on_cran()
for (version in versions()) {
# Can compile CSS against variables (in each version)
css <- sass_partial("body{background-color:$body-bg}", as_bs_theme(version))
css <- sub("#ffffff", "#fff", css)
expect_css(css, "body{background-color:#fff;}")
themes <- bootswatch_themes(version)
for (theme in themes) {
# Can compile each bootswatch theme/version combination
bs <- bs_theme_dependencies(theme = as_bs_theme(paste0(theme, "@", version)))
expect_true(length(bs) > 1)
}
}
})
# The internal bootstrap_bundle() splits up bootstrap.scss into defaults/declarations/rules,
# and so, has to make assumptions about what's in that file. Thus, everytime this file
# changes, we should check to make sure we've made the appropriate changes in bootstrap_bundle()
# (and once we have, then this hash should be updated as well).
test_that("bootstrap.scss hasn't changed", {
expect_snapshot_file(
path_lib("bs4", "scss", "bootstrap.scss"),
name = "bs4-imports"
)
expect_snapshot_file(
path_lib("bs5", "scss", "bootstrap.scss"),
name = "bs5-imports"
)
})
# If Bootstrap changes their %heading placeholder, then we'll likely
# need to update our bootstrap-heading() mixin to replicate those changes
# https://github.com/twbs/bootstrap/blob/2c7f88/scss/_reboot.scss#L83-L96
# https://github.com/rstudio/bslib/tree/main/inst/components/scss/mixins/_mixins.scss
test_that("bootstrap-heading() mixin approximates %heading placeholder", {
reboot <- readLines(path_lib("bs5", "scss", "_reboot.scss"))
idx_start <- which(reboot == "%heading {")
idx_end <- NA
for (idx in which(reboot == "}")) {
if (idx > idx_start) {
idx_end <- idx
break
}
}
heading_placeholder <- reboot[seq.int(idx_start, idx_end)]
expect_snapshot(heading_placeholder)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.