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)) }) })