tests/testthat/test-validate.R

test_that('`manifest_validate()` works on package example files', {
  expect_true(
    manifest_validate(path = system.file('minimal.toml', package = 'manifesto'))
  )
  expect_true(
    manifest_validate(path = system.file('complex.toml', package = 'manifesto'))
  )
})

test_that('`manifest_validate()` works on file with git source', {
  path <- testthat::test_path('files', 'works-git-url.toml')
  expect_true(manifest_validate(path))
})

test_that('`manifest_validate()` works on file with local source', {
  path <- testthat::test_path('files', 'works-local-dev.toml')
  expect_true(manifest_validate(path))
})

test_that('`manifest_validate()` warns on reserved all-dependencies section', {
  path <- testthat::test_path('files', 'warn-all-dependencies.toml')
  expect_warning(
    manifest_validate(path),
    'reserved'
  )
})

test_that('`manifest_validate()` errors when github repo is missing', {
  path <- testthat::test_path('files', 'error-missing-repo.toml')
  expect_error(
    manifest_validate(path, groups = 'dev'),
    'source = github but no repo'
  )
})

test_that('`manifest_validate()` works with url source', {
  path <- testthat::test_path('files', 'works-url.toml')
  expect_true(manifest_validate(path, groups = 'dev'))
})

test_that('`manifest_validate()` works with gitlab source', {
  path <- testthat::test_path('files', 'works-gitlab.toml')
  expect_true(manifest_validate(path, groups = 'dev'))
})

test_that('`manifest_validate()` warns when url source is missing url field', {
  path <- testthat::test_path('files', 'error-missing-url.toml')
  expect_warning(manifest_validate(path), 'missing a url field')
})

test_that('`manifest_validate()` warns when local source is missing path field', {
  path <- testthat::test_path('files', 'error-missing-path.toml')
  expect_warning(manifest_validate(path), 'missing a path field')
})

Try the manifesto package in your browser

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

manifesto documentation built on May 6, 2026, 1:06 a.m.