test_that("styler can style Rnw file", {
expect_false({
out <- style_file(
testthat_file("public-api", "xyzfile-rnw", "random.Rnw"),
strict = FALSE
)
out$changed
})
styled <- style_file(
testthat_file("public-api", "xyzfile-rnw", "random2.Rnw"),
strict = FALSE
)
expect_false(styled$changed)
})
test_that("styler handles malformed Rnw file and invalid R code in chunk", {
capture_output(expect_warning(
style_file(testthat_file("public-api", "xyzfile-rnw", "random3.Rnw"), strict = FALSE)
))
capture_output(expect_warning(
style_file(testthat_file("public-api", "xyzfile-rnw", "random4.Rnw"), strict = FALSE)
))
})
test_that("styler can style R, Rmd and Rnw files via style_pkg()", {
msg <- capture_output(
style_pkg(testthat_file("public-api", "xyzpackage-rnw"),
filetype = c("R", "Rmd", "Rnw")
)
)
expect_true(any(grepl("hello-world.R", msg, fixed = TRUE)))
expect_true(any(grepl("test-package-xyz.R", msg, fixed = TRUE)))
expect_true(any(grepl("random.Rmd", msg, fixed = TRUE)))
expect_true(any(grepl("random.Rnw", msg, fixed = TRUE)))
expect_false(any(grepl("RcppExports.R", msg, fixed = TRUE)))
})
test_that("styler can style Rnw files only via style_pkg()", {
msg <- capture_output(
style_pkg(testthat_file("public-api", "xyzpackage-rnw"),
filetype = "Rnw"
)
)
expect_false(any(grepl("hello-world.R", msg, fixed = TRUE)))
expect_false(any(grepl("test-package-xyz.R", msg, fixed = TRUE)))
expect_false(any(grepl("random.Rmd", msg, fixed = TRUE)))
expect_true(any(grepl("random.Rnw", msg, fixed = TRUE)))
expect_false(any(grepl("RcppExports.R", msg, fixed = TRUE)))
})
test_that("dry run options work:", {
local_test_setup()
path <- test_path("public-api/dry/unstyled.R")
# test the testing function
expect_error(test_dry(path, style_file, styled = TRUE))
# real tests
## R
test_dry(path, style_file)
path <- test_path("public-api/dry/styled.R")
test_dry(path, style_file, styled = TRUE)
## Rmd
test_dry(test_path("public-api/dry/unstyled.Rmd"), style_file, styled = FALSE)
test_dry(test_path("public-api/dry/styled.Rmd"), style_file, styled = TRUE)
## Rnw
test_dry(test_path("public-api/dry/unstyled.Rnw"), style_file, styled = FALSE)
test_dry(test_path("public-api/dry/styled.Rnw"), style_file, styled = TRUE)
})
test_that("base indention works", {
# for single-line strings
n_spaces <- 5
text_in <- "x<- function() NULL"
expect_equal(
style_text(text_in, base_indention = n_spaces),
construct_vertical(paste0(add_spaces(n_spaces), style_text(text_in)))
)
# for multi-line strings
text_in <- c(
"x<- function()",
'"here\nis"',
"NULL",
"1+ 1"
)
text_out <- c(
" x <- function() {",
' "here',
'is"',
" }",
" NULL",
" 1 + 1"
)
expect_equal(
as.character(style_text(text_in, base_indention = n_spaces)),
text_out
)
})
test_that("scope can be specified as is", {
capture_output(expect_false({
styled <- style_pkg(testthat_file("public-api", "xyzpackage"), scope = I("spaces"))
any(styled$changed)
}))
file <- testthat_file("public-api", "xyzpackage", "R", "hello-world.R")
capture_output(expect_false({
styled <- style_file(file, scope = I("line_breaks"))
any(styled$changed)
}))
expect_equal(
style_text(c("1+14;x=2"), scope = I(c("line_breaks", "tokens"))),
construct_vertical(c("1+14", "x<-2"))
)
})
test_that("Can properly determine style_after_saving", {
withr::with_envvar(list(save_after_styling = TRUE), {
expect_warning(op <- save_after_styling_is_active(), "is deprecated")
expect_true(op)
})
withr::with_envvar(list(save_after_styling = FALSE), {
expect_warning(op <- save_after_styling_is_active(), "is deprecated")
expect_false(op)
})
withr::with_options(list(styler.save_after_styling = TRUE), {
expect_silent(op <- save_after_styling_is_active())
expect_true(op)
})
withr::with_options(list(styler.save_after_styling = TRUE), {
withr::with_envvar(list(save_after_styling = FALSE), {
expect_warning(op <- save_after_styling_is_active(), "is deprecated")
expect_true(op)
})
})
withr::with_options(list(styler.save_after_styling = FALSE), {
expect_silent(op <- save_after_styling_is_active())
expect_false(op)
})
})
test_that("Can display warning on unset styler cache", {
withr::local_options(styler.cache_root = NULL)
withr::local_seed(7)
expect_message(
ask_to_switch_to_non_default_cache_root(ask = TRUE),
regexp = "styler::caching",
fixed = TRUE
)
})
test_that("No sensitive to decimal option", {
skip_if_not_installed("prettycode")
withr::local_options(OutDec = ",")
expect_snapshot({
style_text("1")
})
})
test_that("Can display warning on unset styler cache", {
withr::local_options(styler.cache_root = "styler-perm")
withr::local_seed(7)
expect_silent(ask_to_switch_to_non_default_cache_root(ask = TRUE))
})
test_that("alignment detection can be turned off.", {
withr::local_options(
"styler.ignore_alignment" = TRUE,
"styler.colored_print.vertical" = FALSE
)
text_in <- paste0(
"call(\n",
" xb = 13,\n",
" t = 'a'\n",
")"
)
text_out <- c(
"call(",
" xb = 13,",
" t = \"a\"",
")"
)
expect_true(all(
style_text(text_in) == text_out
))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.