test_that("github_pat", {
withr::local_envvar(c(GITHUB_PAT="badcafe"))
expect_equal(github_pat(), "badcafe")
expect_message(github_pat(quiet = FALSE), "Using github PAT from envvar GITHUB_PAT")
# Check standard GITHUB_PAT
withr::with_envvar(
c(
GITHUB_PAT = NA,
GITHUB_TOKEN = NA,
CI = NA,
GITHUB_PAT_GITHUB_COM = "FAIL" # make gitcreds fail
),
{
expect_equal(github_pat(), NULL)
}
)
# Check for embedded token
withr::with_envvar(c(GITHUB_PAT=NA, CI="true"), {
expect_true(nzchar(github_pat()))
})
# Check for GITHUB_TOKEN
withr::with_envvar(c(GITHUB_PAT=NA, GITHUB_TOKEN="hi!", CI=NA), {
expect_true(nzchar(github_pat()))
})
expect_true(nzchar(github_pat()))
})
test_that("github_commit", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
# Without curl
expect_equal(
github_commit("r-lib", "remotes", "1.0.0", use_curl = FALSE),
"92e5d5c061f181242cb877e4714bea76d94927da")
# With curl
expect_equal(
github_commit("r-lib", "remotes", "1.0.0", use_curl = TRUE),
"92e5d5c061f181242cb877e4714bea76d94927da")
# With curl and different local sha
expect_equal(
github_commit("r-lib", "remotes", "1.0.0", use_curl = TRUE, current_sha = "xyz"),
"92e5d5c061f181242cb877e4714bea76d94927da")
# With curl and same local sha
expect_equal(
github_commit("r-lib", "remotes", "1.0.0", use_curl = TRUE, current_sha = "92e5d5c061f181242cb877e4714bea76d94927da"),
"92e5d5c061f181242cb877e4714bea76d94927da")
})
test_that("github_DESCRIPTION", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
tmp <- tempfile()
on.exit(unlink(tmp))
download(tmp, "https://raw.githubusercontent.com/r-lib/remotes/1.0.0/DESCRIPTION")
desc <- readChar(tmp, file.info(tmp)$size)
# Without curl
expect_equal(
github_DESCRIPTION("r-lib", "remotes", ref = "1.0.0", use_curl = FALSE),
desc)
# With curl
expect_equal(
github_DESCRIPTION("r-lib", "remotes", ref = "1.0.0", use_curl = TRUE),
desc)
})
test_that("github_error", {
mockery::stub(
github_error,
"curl::parse_headers_list",
list(`x-ratelimit-remaining` = 0, `x-ratelimit-limit` = 5000, `x-ratelimit-reset` = "1539962178"))
# Test without the TRAVIS envvar set
withr::with_envvar(c(TRAVIS = NA), {
err <- github_error(list(headers = "", status_code = "304", content = charToRaw('{"message": "foobar"}')))
expect_snapshot(conditionMessage(err))
})
# Test with the TRAVIS envvar set
withr::with_envvar(c(TRAVIS = "true"), {
err <- github_error(list(headers = "", status_code = "304", content = charToRaw('{"message": "foobar"}')))
expect_snapshot(conditionMessage(err))
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.