# test_that("reprex: clipboard input works") # This test was removed: # * Feels like I'm just testing clipr, which seems silly. # * Because clipr and reprex have erected so many safeguards against # clipboard access in a noninteractive session, for CRAN reasons, this test # requires a great deal of gymnastics to bypass all of that. # * Normal usage will absolutely and immediately reveal clipboard problems. test_that("reprex: expression input works", { expect_snapshot(cli::cat_line( reprex({x <- 1:5; mean(x)}, render = FALSE) )) }) ## https://github.com/tidyverse/reprex/issues/241 test_that("reprex: expression input preserves `!!`", { res <- reprex( {f <- function(c6d573e) rlang::qq_show(how_many(!!rlang::enquo(c6d573e)))}, render = FALSE ) expect_match(res, "!!rlang::enquo(c6d573e)", all = FALSE, fixed = TRUE) }) test_that("reprex: character input works", { expect_snapshot(cli::cat_line( reprex(input = c("x <- 5:1", "mean(x)"), render = FALSE) )) }) test_that("reprex: file input works", { local_temp_wd() write_lines(c("x <- 6:10", "mean(x)"), "foo.R") expect_snapshot(cli::cat_line( reprex(input = "foo.R", render = FALSE) )) }) test_that("reprex: file input in a subdirectory works", { local_temp_wd() dir_create("foo") write_lines(c("x <- 11:15", "mean(x)"), path("foo", "foo.R")) expect_snapshot(cli::cat_line( reprex(input = path("foo", "foo.R"), render = FALSE) )) }) test_that("Circular use is detected before source file written", { skip_on_cran() ret <- reprex(exp(1), venue = "gh") expect_snapshot(error = TRUE, reprex(input = ret, render = FALSE)) ret <- reprex(exp(1), venue = "r") expect_snapshot(error = TRUE, reprex(input = ret, render = FALSE)) ret <- reprex(exp(1), venue = "html") expect_snapshot(error = TRUE, reprex(input = ret, render = FALSE)) }) test_that("Leading prompts are removed", { skip_on_cran() input <- c("x <- 1:3", "median(x)") res <- reprex(input = input, render = FALSE) input2 <- paste0(getOption("prompt"), input) local_reprex_loud() expect_snapshot( res2 <- reprex(input = input2, render = FALSE) ) expect_identical(res, res2) }) test_that("newlines in code are protected and uniformly so across venues", { # NOTE: use of single vs double quotes is counter-intuitive, but deliberate input <- 'paste(letters[1:3], collapse = "\n")\n' chr_input <- reprex(input = input, render = FALSE) input_file <- path_temp("foo.R") withr::local_file(input_file) write_lines( escape_newlines('paste(letters[1:3], collapse = "\n")'), input_file ) path_input <- reprex(input = input_file, render = FALSE) expr_input <- reprex(paste(letters[1:3], collapse = "\n"), render = FALSE) expect_identical(chr_input, path_input) expect_identical(chr_input, expr_input) })