Nothing
testthat::test_that("get_teal_bs_theme", {
testthat::expect_true(is.null(get_teal_bs_theme()))
withr::with_options(list("teal.bs_theme" = bslib::bs_theme(version = "5")), {
testthat::expect_s3_class(get_teal_bs_theme(), "bs_theme")
})
withr::with_options(list("teal.bs_theme" = 1), {
testthat::expect_warning(get_teal_bs_theme(), "the default shiny bootstrap is used")
})
withr::with_options(list("teal.bs_theme" = "bs_theme"), {
testthat::expect_warning(get_teal_bs_theme(), "the default shiny bootstrap is used")
})
})
testthat::test_that("report_card_template function returns TealReportCard object with appropriate content and labels", {
fd <- teal.slice::init_filtered_data(list(iris = list(dataset = iris)))
filter_panel_api <- teal.slice::FilterPanelAPI$new(fd)
card <- shiny::isolate(report_card_template(
title = "Card title",
label = "Card label",
description = "Sample description",
with_filter = TRUE,
filter_panel_api = filter_panel_api
))
testthat::expect_s3_class(card, c("TealReportCard"))
testthat::expect_equal(card$get_name(), "Card label")
testthat::expect_length(card$get_content(), 4)
card <- shiny::isolate(report_card_template(
title = "Card title",
label = "",
with_filter = FALSE,
filter_panel_api = filter_panel_api
))
testthat::expect_s3_class(card, c("TealReportCard"))
testthat::expect_equal(card$get_name(), "Card title")
testthat::expect_length(card$get_content(), 1)
})
test_that("teal_data_to_filtered_data return FilteredData class", {
teal_data <- teal.data::teal_data()
teal_data <- within(teal_data, iris <- head(iris))
datanames(teal_data) <- "iris"
testthat::expect_s3_class(teal_data_to_filtered_data(teal_data), "FilteredData")
})
test_that("teal_data_datanames returns names of the @env's objects when datanames not set", {
teal_data <- teal.data::teal_data()
teal_data <- within(teal_data, {
iris <- head(iris)
mtcars <- head(mtcars)
})
testthat::expect_setequal(teal_data_datanames(teal_data), c("mtcars", "iris"))
})
test_that("teal_data_datanames returns datanames which are set by teal.data::datanames", {
teal_data <- teal.data::teal_data()
teal_data <- within(teal_data, {
iris <- head(iris)
mtcars <- head(mtcars)
})
datanames(teal_data) <- "iris"
testthat::expect_equal(teal_data_datanames(teal_data), "iris")
})
test_that("modules_datasets returns correct structure", {
data <- teal_data() %>%
within({
iris <- iris
mtcars <- mtcars
x <- 5
})
modules <- modules(
label = "one",
modules(
label = "two",
example_module("example two", "all"),
modules(
label = "three",
example_module("example three", "iris"),
example_module("example four", "mtcars")
)
),
example_module("example one", "iris")
)
filters <- teal_slices(
teal_slice("iris", "Species"),
teal_slice("iris", "Sepal.Length"),
teal_slice("mtcars", "mpg"),
teal_slice("mtcars", "cyl"),
teal_slice("mtcars", "gear"),
module_specific = TRUE,
mapping = list(
"example one" = "iris Species",
"example four" = "mtcars mpg",
global_filters = "mtcars cyl"
)
)
modules_structure <- rapply(
modules_datasets(data, modules, filters),
function(x) {
isolate(sapply(x$get_filter_state(), `[[`, "id"))
},
how = "replace"
)
expected_structure <- list(
two = list(
`example two` = "mtcars cyl",
three = list(
`example three` = list(),
`example four` = c("mtcars mpg", "mtcars cyl")
)
),
`example one` = "iris Species"
)
testthat::expect_identical(modules_structure, expected_structure)
})
test_that("validate_app_title_tag works on validating the title tag", {
valid_title <- tags$head(
tags$title("title"),
tags$link(rel = "icon", href = "favicon.ico"),
tags$div("Secret")
)
head_missing <- tags$div(
tags$title(title),
tags$link(rel = "icon", href = "favicon.ico")
)
title_missing <- tags$head(
tags$link(rel = "icon", href = "favicon.ico")
)
icon_missing <- tags$head(
tags$title(title)
)
invalid_link <- tags$head(
tags$title("title"),
tags$link(href = "favicon.ico"),
tags$div("Secret")
)
testthat::expect_silent(validate_app_title_tag(valid_title))
testthat::expect_error(validate_app_title_tag(head_missing))
testthat::expect_error(validate_app_title_tag(title_missing))
testthat::expect_error(validate_app_title_tag(icon_missing))
testthat::expect_error(validate_app_title_tag(invalid_link))
})
test_that("build_app_title builts a valid tag", {
valid_title_local <- build_app_title("title", "logo.png")
valid_title_remote <- build_app_title("title", "https://raw.githubusercontent.com/insightsengineering/hex-stickers/main/PNG/nest.png") # nolint
testthat::expect_silent(validate_app_title_tag(valid_title_local))
testthat::expect_silent(validate_app_title_tag(valid_title_remote))
})
# create_app_id ----
testthat::test_that("create_app_id: 'data' accepts teal_data or teal_data_module", {
testthat::expect_no_error(create_app_id(teal.data::teal_data(), modules(example_module())))
tdm <- teal_data_module(
ui = function(id) div(),
server = function(id) NULL
)
testthat::expect_no_error(create_app_id(tdm, modules(example_module())))
testthat::expect_error(
create_app_id(iris, modules(example_module())),
"Assertion on 'data' failed: Must inherit from class 'teal_data'/'teal_data_module'"
)
})
testthat::test_that("create_app_id: 'modules' accepts modules", {
testthat::expect_no_error(create_app_id(teal.data::teal_data(), modules(example_module())))
testthat::expect_error(
create_app_id(teal.data::teal_data(), example_module()),
"Assertion on 'modules' failed: Must inherit from class 'teal_modules'"
)
})
testthat::test_that("create_app_id returns a character string", {
checkmate::expect_string(create_app_id(teal.data::teal_data(), modules(example_module())))
})
testthat::test_that("create_app_id returns different hash for different data", {
hash1 <- create_app_id(teal.data::teal_data(i = iris), modules(example_module()))
hash2 <- create_app_id(teal.data::teal_data(i = mtcars), modules(example_module()))
testthat::expect_failure(testthat::expect_identical(hash1, hash2))
})
testthat::test_that("create_app_id returns different hash for different modules", {
hash1 <- create_app_id(teal.data::teal_data(i = iris), modules(example_module()))
hash2 <- create_app_id(teal.data::teal_data(i = iris), modules(example_module(), example_module()))
testthat::expect_failure(testthat::expect_identical(hash1, hash2))
})
## defunction ----
testthat::test_that("defunction returns a string when passed a function", {
checkmate::expect_string(defunction(init))
})
testthat::test_that("defunction returns non-function atomic as is", {
testthat::expect_identical(
defunction("character"),
"character"
)
testthat::expect_identical(
defunction(c(TRUE, FALSE)),
c(TRUE, FALSE)
)
testthat::expect_identical(
defunction(1:3),
1:3
)
testthat::expect_identical(
defunction(1:3 * 1),
1:3 * 1
)
})
testthat::test_that("defunction recursively goes down a list", {
# styler: off
x <- list(
"character" = "character",
"function1" = function(x) return(x),
"list2" = list(
"function2" = function(x) mean(x),
"list3" = list(
"function3" = function(data) summary(data)
)
)
)
# styler: on
y <- list(
"character" = "character",
"function1" = "return(x)",
"list2" = list(
"function2" = "mean(x)",
"list3" = list(
"function3" = "summary(data)"
)
)
)
testthat::expect_identical(
defunction(x),
y
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.