diff --git a/tests/testthat/_snaps/vignette.md b/tests/testthat/_snaps/vignette.md new file mode 100644 index 000000000..efc59468e --- /dev/null +++ b/tests/testthat/_snaps/vignette.md @@ -0,0 +1,13 @@ +# use_vignette() gives useful errors + + Code + use_vignette() + Error + argument "name" is missing, with no default + Code + use_vignette("bad name") + Error + 'bad name' is not a valid filename for a vignette. It must: + * Start with a letter. + * Contain only letters, numbers, '_', and '-'. + diff --git a/tests/testthat/test-vignette.R b/tests/testthat/test-vignette.R index 6ad515efd..b8534b8cb 100644 --- a/tests/testthat/test-vignette.R +++ b/tests/testthat/test-vignette.R @@ -1,28 +1,25 @@ -test_that("use_vignette() requires a package", { - skip_if_not_installed("rmarkdown") +# use_vignette ------------------------------------------------------------ +test_that("use_vignette() requires a package", { create_local_project() + expect_usethis_error(use_vignette(), "not an R package") }) -test_that("use_vignette() requires a `name`", { - skip_if_not_installed("rmarkdown") - +test_that("use_vignette() gives useful errors", { create_local_package() - expect_error(use_vignette(), "no default") -}) -test_that("valid_vignette_name() works", { - expect_true(valid_vignette_name("perfectly-valid-name")) - expect_false(valid_vignette_name("01-test")) - expect_false(valid_vignette_name("test.1")) + expect_snapshot(error = TRUE, { + use_vignette() + use_vignette("bad name") + }) }) test_that("use_vignette() does the promised setup", { - skip_if_not_installed("rmarkdown") - create_local_package() + use_vignette("name", "title") + expect_proj_file("vignettes/name.Rmd") ignores <- read_utf8(proj_path(".gitignore")) expect_true("inst/doc" %in% ignores) @@ -38,9 +35,19 @@ test_that("use_vignette() does the promised setup", { ) }) +# use_article ------------------------------------------------------------- + test_that("use_article goes in article subdirectory", { create_local_package() use_article("test") expect_proj_file("vignettes/articles/test.Rmd") }) + +# helpers ----------------------------------------------------------------- + +test_that("valid_vignette_name() works", { + expect_true(valid_vignette_name("perfectly-valid-name")) + expect_false(valid_vignette_name("01-test")) + expect_false(valid_vignette_name("test.1")) +})