tests/testthat/test-deparsing.R

describe("deparsing", isolate({

  it("escapes strings", {
    mr <- metaReactive({"foo"})
    out <- withMetaMode(mr())
    expect_equal(as.character(out), "\"foo\"")
    expect_equal(format(out), "\"foo\"")

    skip_if_not_installed("knitr")
    expect_equal(
      knitr::knit_expand(text = "a <- {{out}}", out = out),
      "a <- \"foo\""
    )
  })

  it("deparses code objects", {
    mr <- metaReactive({"foo" + 1})
    out <- withMetaMode(mr())
    expect_equal(as.character(out), "\"foo\" + 1")
    expect_equal(format(out), "\"foo\" + 1")

    skip_if_not_installed("knitr")
    expect_equal(
      knitr::knit_expand(text = "a <- {{out}}", out = out),
      "a <- \"foo\" + 1"
    )
  })

  it("deparses R objects", {
    mr <- metaReactive({list(a = 1)})
    out <- withMetaMode(mr())
    expect_equal(as.character(out), "list(a = 1)")
    expect_equal(format(out), "list(a = 1)")

    skip_if_not_installed("knitr")
    expect_equal(
      knitr::knit_expand(text = "a <- {{out}}", out = out),
      "a <- list(a = 1)"
    )
  })

}))
rstudio/shinymeta documentation built on April 26, 2024, 1:12 a.m.