Nothing
box::use(
testthat[
test_that,
expect_error,
expect_equal,
expect_identical,
expect_null,
expect_length,
expect_true
]
)
test_that("turn_path_into_box_importable validates input", {
box::use(artma / modules / path[turn_path_into_box_importable])
expect_error(
turn_path_into_box_importable(1),
class = "rlang_error",
regexp = "Invalid path"
)
expect_error(
turn_path_into_box_importable(character()),
class = "rlang_error",
regexp = "Invalid path"
)
expect_error(
turn_path_into_box_importable("tests/testthat/nope.R"),
class = "rlang_error",
regexp = "does not exist"
)
})
test_that("turn_path_into_box_importable returns NULL when package root is absent", {
box::use(artma / modules / path[turn_path_into_box_importable])
tmp_file <- withr::local_tempfile(fileext = ".R")
writeLines("cat('demo')\n", tmp_file)
expect_null(turn_path_into_box_importable(tmp_file))
})
test_that("turn_path_into_box_importable returns a package scoped import path", {
box::use(artma / modules / path[turn_path_into_box_importable])
pkg_path <- file.path("inst", "artma", "modules", "path")
expected <- "artma/modules/path"
expect_equal(turn_path_into_box_importable(pkg_path), expected)
})
test_that("turn_path_into_box_import returns an unevaluated box import expression", {
box::use(artma / modules / path[turn_path_into_box_import])
pkg_path <- file.path("inst", "artma", "modules", "path")
expr <- turn_path_into_box_import(pkg_path)
expect_true(is.expression(expr))
expect_length(expr, 1L)
expect_identical(
expr,
parse(text = "box::use(path=artma/modules/path)")
)
})
test_that("turn_path_into_box_import errors when it cannot determine an import path", {
box::use(artma / modules / path[turn_path_into_box_import])
tmp_file <- withr::local_tempfile(fileext = ".R")
writeLines("cat('demo')\n", tmp_file)
expect_error(
turn_path_into_box_import(tmp_file),
class = "rlang_error",
regexp = "Failed to determine a path"
)
})
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.