test_that("providing wrong arguments return error", {
expect_error(cite_packages(out.dir = NULL))
expect_error(cite_packages(out.dir = tempdir(), out.file = "test",
bib.file = "test"))
})
test_that("cite_packages returns correct citekeys", {
expect_identical(cite_packages(output = "citekeys",
pkgs = c("remotes", "renv", "knitr", "dplyr",
"utils", "tidyverse"),
out.dir = tempdir()),
c("knitr2024", "knitr2015", "knitr2014", "remotes", "renv",
"tidyverse", "utils"))
})
test_that("cite_packages returns correct table", {
tabla <- cite_packages(output = "table",
pkgs = c("remotes", "renv", "knitr",
"dplyr", "utils", "tidyverse"),
out.dir = tempdir())
expect_true(nrow(tabla) == 5)
expect_identical(names(tabla), c("Package", "Version", "Citation"))
expect_identical(tabla$Package, c("knitr", "remotes", "renv", "tidyverse", "utils"))
expect_identical(tabla$Citation,
list(knitr = "@knitr2014; @knitr2015; @knitr2024",
remotes = "@remotes",
renv = "@renv",
tidyverse = "@tidyverse",
utils = "@utils"))
})
test_that("cite_packages returns correct paragraph", {
skip_on_cran()
para <- cite_packages(output = "paragraph",
pkgs = c("grateful"),
out.dir = tempdir())
expect_identical(para,
structure(paste0("We used the following R packages: grateful v. ",
utils::packageVersion("grateful"), " [@grateful]."),
class = "knit_asis",
knit_cacheable = NA))
para <- cite_packages(output = "paragraph",
pkgs = "Session",
out.dir = tempdir())
expect_identical(para,
structure(paste0("We used R version ",
R.version$major, ".", R.version$minor,
" [@base] and the following R packages: testthat v. ",
utils::packageVersion("testthat"), " [@testthat]."),
class = "knit_asis",
knit_cacheable = NA))
### passive voice
para <- cite_packages(output = "paragraph",
pkgs = c("grateful"),
out.dir = tempdir(),
passive.voice = TRUE)
expect_identical(para,
structure(paste0("This work was completed with the following R packages: grateful v. ",
utils::packageVersion("grateful"), " [@grateful]."),
class = "knit_asis",
knit_cacheable = NA))
para <- cite_packages(output = "paragraph",
pkgs = "Session",
out.dir = tempdir(),
passive.voice = TRUE)
expect_identical(para,
structure(paste0("This work was completed using R version ",
R.version$major, ".", R.version$minor,
" [@base] with the following R packages: testthat v. ",
utils::packageVersion("testthat"), " [@testthat]."),
class = "knit_asis",
knit_cacheable = NA))
})
test_that("cite_packages returns correct Rmd", {
skip_on_cran()
skip_on_ci()
cite <- cite_packages(
output = "file",
out.dir = tempdir(),
out.format = "Rmd",
pkgs = "grateful")
rmd.file <- readLines(cite)
#dput(rmd.file)
expect_equal(cite, file.path(tempdir(), "grateful-report.Rmd"))
expect_equal(rmd.file,
c("---",
"title: \"`grateful` citation report\"",
"bibliography: grateful-refs.bib",
"#csl: null.csl",
"---",
"",
"## R packages used",
"",
"|Package |Version |Citation |",
"|:--------|:-------|:---------|",
paste0("|grateful |",
utils::packageVersion("grateful"),
paste0(rep(" ",
times = 8 - nchar(as.character(utils::packageVersion("grateful")))),
collapse = ""),
"|@grateful |"),
"",
"**You can paste this paragraph directly in your report:**",
"",
paste0("We used the following R packages: grateful v. ",
utils::packageVersion("grateful"), " [@grateful]."),
"",
"## Package citations",
""))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.