tests/testthat/test-cran_packages.R

library(stringr)

# CRAN URL must be set for the tests to work
options(repos = c(CRAN = "https://cloud.r-project.org"))


test_that("get_cran_page() works", {
  skip_on_cran()
  expect_true(
    any(str_detect(get_cran_page("packages"), "Contributed Packages"))
  )
  expect_true(
    any(str_detect(get_cran_page("main"), "Comprehensive R Archive Network"))
  )
  expect_error(get_cran_page("nonsense"), "invalid value for type")
})


test_that("n_available_packages() works", {
  skip_on_cran()
  expect_type(n_available_packages(), "integer")
  expect_gt(n_available_packages(), 15000)
})


test_that("available_r_version() works", {
  skip_on_cran()
  expect_match(available_r_version(), "\\d\\.\\d\\.\\d")
})


test_that("failing internet connection is handled", {
  # setting these options causes file() to fail on URLs
  opts <- options(url.method = "none", encoding = "none")
  expect_error(get_cran_page("packages"),
               "Obtaining data from CRAN failed")
  expect_error(n_available_packages(),
               "Obtaining data from CRAN failed")
  expect_error(available_r_version(),
               "Obtaining data from CRAN failed")
  options(opts)
})
stibu81/ibawds documentation built on April 14, 2025, 12:16 a.m.