# https://github.com/tidyverse/reprex/issues/349
test_that("reprex additions are added to a *copy* of an Rmd input file", {
skip_on_cran()
fixture_path <- path_abs(test_path("fixtures/a-reprex-document.Rmd"))
local_temp_wd()
file_copy(fixture_path, "foo.Rmd")
n_before <- read_lines("foo.Rmd")
reprex_render("foo.Rmd")
n_after <- read_lines("foo.Rmd")
expect_equal(n_before, n_after)
})
test_that("remove_info_strings() gets rid of 'info strings'", {
f <- function(x) strsplit(glue::glue(x), split = "\n")[[1]]
# examples from https://spec.commonmark.org/0.29/#info-string
x <- f("
```
<
>
```")
expect_equal(x, remove_info_strings(x))
x <- f("
```ruby
def foo(x)
return 3
end
```")
expect_equal(sub("ruby", "", x), remove_info_strings(x))
x <- f("
``` ruby startline=3 $%@#$
def foo(x)
return 3
end
```")
expect_equal(c("```", tail(x, -1)), remove_info_strings(x))
})
test_that("preview() works with the 'Knit' button", {
skip_on_cran()
local_temp_wd()
write_lines("3 * 5\n", "foo.R")
reprex(input = "foo.R")
withr::local_envvar(c(RMARKDOWN_PREVIEW_DIR = "."))
rlang::local_interactive(FALSE)
msg <- capture.output(
preview_file <- preview("foo_reprex.md"),
type = "message"
)
expect_true(file_exists("foo_reprex_preview.html"))
expect_equal(path_file(preview_file), "foo_reprex_preview.html")
expect_messages_to_include(
msg,
c("^Preview created:", "foo_reprex_preview.html$")
)
})
test_that("preview() calls viewer() in the interactive RStudio scenario", {
skip_on_cran()
local_temp_wd()
write_lines("10 / 5\n", "foo.R")
reprex(input = "foo.R")
rlang::local_interactive(TRUE)
local_options(viewer = function(...) cat("viewer!", file = stderr()))
msg <- capture.output(
preview_file <- preview("foo_reprex.md"),
type = "message"
)
expect_true(file_exists(preview_file))
expect_equal(path_file(preview_file), "foo_reprex_preview.html")
expect_messages_to_include(msg, "viewer!")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.