Nothing
test_that("all forms of specifying endpoint are equivalent", {
r1 <- gh_build_request("GET /rate_limit")
expect_equal(r1$method, "GET")
expect_equal(r1$url, "https://api.github.com/rate_limit")
expect_equal(gh_build_request("/rate_limit"), r1)
expect_equal(gh_build_request("GET https://api.github.com/rate_limit"), r1)
expect_equal(gh_build_request("https://api.github.com/rate_limit"), r1)
})
test_that("method arg sets default method", {
r <- gh_build_request("/rate_limit", method = "POST")
expect_equal(r$method, "POST")
})
test_that("parameter substitution is equivalent to direct specification (:)", {
subst <-
gh_build_request("POST /repos/:org/:repo/issues/:number/labels",
params = list(
org = "ORG", repo = "REPO", number = "1",
"body"
)
)
spec <-
gh_build_request("POST /repos/ORG/REPO/issues/1/labels",
params = list("body")
)
expect_identical(subst, spec)
})
test_that("parameter substitution is equivalent to direct specification", {
subst <-
gh_build_request("POST /repos/{org}/{repo}/issues/{number}/labels",
params = list(
org = "ORG", repo = "REPO", number = "1",
"body"
)
)
spec <-
gh_build_request("POST /repos/ORG/REPO/issues/1/labels",
params = list("body")
)
expect_identical(subst, spec)
})
test_that("URI templates that need expansion are detected", {
expect_true(is_uri_template("/orgs/{org}/repos"))
expect_true(is_uri_template("/repos/{owner}/{repo}"))
expect_false(is_uri_template("/user/repos"))
})
test_that("older 'colon templates' are detected", {
expect_true(is_colon_template("/orgs/:org/repos"))
expect_true(is_colon_template("/repos/:owner/:repo"))
expect_false(is_colon_template("/user/repos"))
})
test_that("gh_set_endpoint() works", {
# no expansion, no extra params
input <- list(endpoint = "/user/repos")
expect_equal(input, gh_set_endpoint(input))
# no expansion, with extra params
input <- list(endpoint = "/user/repos", params = list(page = 2))
expect_equal(input, gh_set_endpoint(input))
# expansion, no extra params
input <- list(
endpoint = "/repos/{owner}/{repo}",
params = list(owner = "OWNER", repo = "REPO")
)
out <- gh_set_endpoint(input)
expect_equal(
out,
list(endpoint = "/repos/OWNER/REPO", params = list())
)
# expansion, with extra params
input <- list(
endpoint = "/repos/{owner}/{repo}/issues",
params = list(state = "open", owner = "OWNER", repo = "REPO", page = 2)
)
out <- gh_set_endpoint(input)
expect_equal(out$endpoint, "/repos/OWNER/REPO/issues")
expect_equal(out$params, list(state = "open", page = 2))
})
test_that("gh_set_endpoint() refuses to substitute an NA", {
input <- list(
endpoint = "POST /orgs/{org}/repos",
params = list(org = NA)
)
expect_error(gh_set_endpoint(input), "Named NA")
})
test_that("gh_set_endpoint() allows a named NA in body for non-GET", {
input <- list(
endpoint = "PUT /repos/{owner}/{repo}/pages",
params = list(owner = "OWNER", repo = "REPO", cname = NA)
)
out <- gh_set_endpoint(input)
expect_equal(out$endpoint, "PUT /repos/OWNER/REPO/pages")
expect_equal(out$params, list(cname = NA))
})
test_that("gh_set_url() ensures URL is in 'API form'", {
input <- list(
endpoint = "/user/repos",
api_url = "https://github.com"
)
out <- gh_set_url(input)
expect_equal(out$api_url, "https://api.github.com")
input$api_url <- "https://github.acme.com"
out <- gh_set_url(input)
expect_equal(out$api_url, "https://github.acme.com/api/v3")
})
test_that("gh_make_request() errors if unknown verb", {
expect_snapshot_error(gh("geeet /users/hadley/repos", .limit = 2))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.