#' Skip tests that need an internet connection if you don't have one
#'
#' Temporary connection trouble shouldn't fail your build.
#'
#' Note that if you call this from inside one of the mock contexts, it will
#' follow the mock's behavior. That is, inside [with_fake_http()],
#' the check will pass and the following tests will run, but inside
#' [without_internet()], the following tests will be skipped.
#' @param message character message to be printed, passed to
#' [testthat::skip()]
#' @param url character URL to ping to check for a working connection
#' @return If offline, a test skip; else invisibly returns TRUE.
#' @seealso [testthat::skip()]
#' @importFrom testthat skip skip_on_cran
#' @export
skip_if_disconnected <- function(message = paste("Offline: cannot reach", url),
url = "http://httpbin.org/") {
skip_on_cran()
if (currently_offline(url)) {
skip(message)
}
invisible(TRUE)
}
#' @importFrom httr GET PUT POST PATCH DELETE VERB RETRY
currently_offline <- function(url = "http://httpbin.org/") {
inherits(try(httr::GET(url), silent = TRUE), "try-error")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.