tests/testthat/test-description.R

test_that("snapshotting broken DESCRIPTION files is an error", {

  # empty file
  file <- renv_scope_tempfile()
  file.create(file)
  expect_error(renv_snapshot_description(file))

  # missing Version field
  fields <- c(Type = "Package", Package = "test")
  renv_dcf_write(fields, file = file)
  expect_error(renv_snapshot_description(file))

})

test_that("we read DESCRIPTION files correctly", {

  contents <- heredoc("
    Package: example
    Description: This is a description.
      Indented fields might have colons: that's fine.
    Depends: apple
    URL: https://posit.co
  ")

  descfile <- renv_scope_tempfile()
  writeLines(contents, con = descfile)
  actual <- renv_description_read(path = descfile)

  expected <- list(
    Package = "example",
    Description = paste(
      "This is a description.",
      "Indented fields might have colons: that's fine."
    ),
    Depends = "apple",
    URL = "https://posit.co"
  )

  expect_equal(actual, expected)

})

test_that("we can read a DESCRIPTION file with empty lines", {

  contents <- heredoc("
    Package: example

    Description: Oops! There's a blank line!
  ")

  descfile <- renv_scope_tempfile()
  writeLines(contents, con = descfile)
  actual <- renv_description_read(path = descfile)

  expected <- list(
    Package = "example",
    Description = "Oops! There's a blank line!"
  )

  expect_equal(actual, expected)

})

Try the renv package in your browser

Any scripts or data that you put into this service are public.

renv documentation built on Sept. 19, 2023, 9:06 a.m.