test_that("`frame_exits()` and `frame_clear_exits()`", {
on.exit("foo")
expect_equal(frame_exits(), list("foo"))
on.exit("bar", add = TRUE)
expect_equal(frame_exits(), list("foo", "bar"))
on.exit("baz", add = TRUE, after = FALSE)
expect_equal(frame_exits(), list("baz", "foo", "bar"))
frame_clear_exits()
expect_equal(frame_exits(), list())
})
test_that("deferred_run() displays how many expressions were run", {
expect_snapshot(deferred_run())
expect_snapshot(local({
local_tempfile()
local_tempfile()
deferred_run()
}))
expect_snapshot(expect_error(local({
local_tempfile()
defer(stop("foo"))
local_tempfile()
deferred_run()
})))
})
test_that("can't run `deferred_run()` in knitr", {
skip_if_cannot_knit()
rmd <- local_tempfile(fileext = ".Rmd")
out <- local_tempfile(fileext = ".md")
writeLines(rmd, text = "
```{r}
withr::deferred_run()
```
```{r}
defer(writeLines('1'))
writeLines('2')
defer(writeLines('3'))
```
```{r}
writeLines('4')
withr::deferred_run()
```
")
knitr::knit(rmd, out, quiet = TRUE)
expect_snapshot({
writeLines(readLines(out))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.