test_that("global theme api works", { bs_global_theme(version = 4, bootswatch = "sketchy") on.exit(bs_global_clear(), add = TRUE) # Can retrieve theme version/bootswatch sketchy_theme <- bs_global_get() expect_equal(theme_version(sketchy_theme), "4") expect_equal(theme_bootswatch(sketchy_theme), "sketchy") # Setting a new theme overrides the old one bs_global_theme(version = 4, bootswatch = "cosmo") cosmo_theme <- bs_global_get() expect_equal(theme_version(cosmo_theme), "4") expect_equal(theme_bootswatch(cosmo_theme), "cosmo") # Can add new variable defaults bs_global_add_variables("primary" = "red !default;") primary <- sass_partial("body{background:$primary;}", bs_global_get()) expect_css("body{background:red;}", primary) # Can clear bs_global_clear() expect_null(bs_global_get()) # Adding without a set errors expect_error(bs_global_bundle()) # Can set a theme object as the current theme bs_global_set(cosmo_theme) primary <- sass_partial("body{background:$primary;}", bs_global_get()) expect_css("body{background:#2780e3;}", primary) }) test_that("Theme adding works as intended", { bs_global_theme() on.exit(bs_global_clear(), add = TRUE) # Can override variable defaults bs_global_add_variables(primary = "blue !default;") bs_global_add_variables(primary = "#fff !default;") css <- sass_partial(".foo{color:$primary;}", bs_global_get()) expect_css(".foo{color:#fff;}", css) # Also works without default flags and can handle numeric values bs_global_add_variables(primary = "blue") bs_global_add_variables(primary = "#fff", "font-size" = 0) css <- sass_partial(".foo{color:$primary;font-size:0}", bs_global_get()) expect_css(".foo{color:#fff;font-size:0;}", css) # Can also override variables via declarations bs_global_add_variables( .where = "mixins", "primary" = "$secondary", "body-color" = "color-contrast($primary)" ) css <- sass_partial(".foo{color:$primary;}", bs_global_get()) expect_css(".foo{color:#404040;}", css) }) test_that("rename works as intended", { expect_identical( rename2(list(a=1, b=3, c=4, a=2), b="z", f="w", a="y"), list(y = 1, z = 3, c = 4, y = 2) ) expect_identical( rename2(c("a", "b", "c", "a"), b="z", f="w", a="y"), c("y", "z", "c", "y") ) })