describe("resolve_bs_preset()", {
it("returns NULL if both `name` and `bootswatch` are missing", {
expect_null(resolve_bs_preset(preset = NULL, bootswatch = NULL))
})
it("throws an error if both `name` and `bootswatch` are provided", {
expect_snapshot(
error = TRUE,
resolve_bs_preset(preset = "name", bootswatch = "bootswatch")
)
})
it("throws an error if `name` or `bootswatch` are not scalar strings", {
expect_snapshot(
error = TRUE,
resolve_bs_preset(preset = c("a", "b"))
)
expect_snapshot(
error = TRUE,
resolve_bs_preset(bootswatch = c("a", "b"))
)
expect_error(resolve_bs_preset(preset = 1))
expect_error(resolve_bs_preset(bootswatch = 1))
expect_error(resolve_bs_preset(preset = TRUE))
expect_error(resolve_bs_preset(bootswatch = TRUE))
expect_error(resolve_bs_preset(preset = NA_character_))
expect_error(resolve_bs_preset(bootswatch = NA_character_))
})
it("throws an error if `name` or `bootswatch` don't match existing presets", {
expect_snapshot(
error = TRUE,
resolve_bs_preset(preset = "not_a_preset", version = 4)
)
expect_snapshot(
error = TRUE,
resolve_bs_preset(bootswatch = "not_a_preset", version = 4)
)
})
it("throws an error for unknown bootstrap version", {
expect_error(resolve_bs_preset(preset = "cerulean", version = "2"))
expect_error(resolve_bs_preset(bootswatch = "cerulean", version = "99"))
expect_warning(resolve_bs_preset(bootswatch = "cerulean", version = "4-3"))
})
it("returns a 'default' preset if name or bootswatch is 'default' or 'bootstrap'", {
expect_equal(
resolve_bs_preset(preset = "default"),
resolve_bs_preset(bootswatch = "default")
)
expect_equal(
resolve_bs_preset(preset = "bootstrap"),
resolve_bs_preset(bootswatch = "bootstrap")
)
expect_equal(
resolve_bs_preset(preset = "default"),
resolve_bs_preset(preset = "bootstrap")
)
expect_equal(
unclass(resolve_bs_preset(preset = "default")),
list(version = version_default(), name = "bootstrap")
)
expect_identical(class(resolve_bs_preset(preset = "default")), "bs_preset")
})
it("returns a BS5 Bootswatch theme preset", {
bsw_darkly <- resolve_bs_preset(bootswatch = "darkly", version = 5)
expect_s3_class(bsw_darkly, "bs_preset")
expect_equal(bsw_darkly$name, "darkly")
expect_equal(bsw_darkly$version, "5")
})
it("returns a BS4 Bootswatch theme preset", {
bsw_cosmo <- resolve_bs_preset(bootswatch = "cosmo", version = 4)
expect_s3_class(bsw_cosmo, "bs_preset")
expect_equal(bsw_cosmo$name, "cosmo")
expect_equal(bsw_cosmo$version, "4")
})
it("returns a BS3 Bootswatch theme preset", {
bsw_readable <- resolve_bs_preset(bootswatch = "readable", version = 3)
expect_s3_class(bsw_readable, "bs_preset")
expect_equal(bsw_readable$name, "readable")
expect_equal(bsw_readable$version, "3")
})
it("returns a bootswatch theme preset if `name` is used instead of `bootswatch`", {
expect_equal(
resolve_bs_preset(preset = "darkly", version = 5),
resolve_bs_preset(bootswatch = "darkly", version = 5)
)
expect_equal(
resolve_bs_preset(preset = "cosmo", version = 4),
resolve_bs_preset(bootswatch = "cosmo", version = 4)
)
expect_equal(
resolve_bs_preset(preset = "readable", version = 3),
resolve_bs_preset(bootswatch = "readable", version = 3)
)
})
it("returns the builtin shiny theme preset", {
shiny <- resolve_bs_preset(preset = "shiny", version = 5)
expect_s3_class(shiny, "bs_preset")
expect_equal(shiny$name, "shiny")
expect_equal(shiny$version, "5")
})
})
test_that("bs_preset_bundle() returns `NULL` for default or empty preset", {
expect_null(bs_preset_bundle(resolve_bs_preset(preset = "default")))
expect_null(bs_preset_bundle(resolve_bs_preset(bootswatch = "default")))
expect_null(bs_preset_bundle(NULL))
})
test_that("bs_preset_bundle() throws for unknown preset$type", {
expect_error(bs_preset_bundle(new_bs_preset("invalid", 5, type = "unknown")))
})
describe("theme_preset_info()", {
it("returns bootswatch theme information", {
expect_equal(
theme_preset_info(bs_theme(version = 5, bootswatch = "flatly")),
new_bs_preset("flatly", version = "5", type = "bootswatch")
)
expect_equal(
theme_preset_info(bs_theme(version = 4, bootswatch = "superhero")),
new_bs_preset("superhero", version = "4", type = "bootswatch")
)
expect_equal(
theme_preset_info(bs_theme(version = 3, bootswatch = "yeti")),
new_bs_preset("yeti", version = "3", type = "bootswatch")
)
})
it("returns builtin preset theme information", {
expect_equal(
theme_preset_info(bs_theme(version = 5, preset = "shiny")),
new_bs_preset("shiny", version = "5", type = "builtin")
)
})
it("returns vanilla bootstrap theme information", {
expect_equal(
theme_preset_info(bs_theme(preset = "bootstrap", version = 5)),
new_bs_preset("bootstrap", version = "5")
)
expect_equal(
theme_preset_info(bs_theme(version = 4)),
new_bs_preset("bootstrap", version = "4")
)
expect_equal(
theme_preset_info(bs_theme(version = 3)),
new_bs_preset("bootstrap", version = "3")
)
})
it("returns NULL if not given a bs_theme object", {
expect_null(theme_preset_info(list()))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.