Nothing
expect_recorded_error <- function(filename, status_code) {
rds_file <- test_path("fixtures", fs::path_ext_set(filename, "rds"))
resp <- readRDS(rds_file)
expect_error(response_process(resp), class = "gargle_error_request_failed")
expect_error(response_process(resp), class = glue("http_error_{status_code}"))
# HTML errors (as opposed to JSON) need this
scrub_filepath <- function(x) {
gsub(
"([\"\'])\\S+gargle-unexpected-html-error-\\S+[.]html([\"\'])",
"\\1VOLATILE_FILE_PATH\\2",
x,
perl = TRUE
)
}
expect_snapshot(response_process(resp), error = TRUE, transform = scrub_filepath)
}
test_that("Resource exhausted (Sheets, ReadGroup)", {
expect_recorded_error(
"sheets-spreadsheets-get-quota-exceeded-readgroup_429",
429
)
})
test_that("Request for non-existent resource (Drive)", {
expect_recorded_error(
"drive-files-get-nonexistent-file-id_404",
404
)
})
# https://github.com/r-lib/gargle/issues/254
test_that("Too many requests (Drive, HTML content)", {
expect_recorded_error(
"drive-automated-queries_429",
429
)
})
# https://github.com/r-lib/gargle/issues/254
test_that("HTML error is offered as a file", {
rds_file <- test_path("fixtures", "drive-automated-queries_429.rds")
resp <- readRDS(rds_file)
err <- tryCatch(
response_process(resp),
gargle_error_request_failed = function(e) e
)
regex <- "[^'\" \\t\\n\\r]+gargle-unexpected-html-error-\\S+[.]html"
m <- gregexpr(regex, err$body, perl = TRUE)
path_to_html_error <- unique(unlist(regmatches(err$body, m)))
# the strwrap() result is a bit goofy, but seems least of all evils
# this is mostly about making sure we excavate the HTML
expect_snapshot(strwrap(readLines(path_to_html_error), width = 60))
unlink(path_to_html_error)
})
test_that("Request for which we don't have scope (Fitness)", {
expect_recorded_error(
"fitness-get-wrong-scope_403",
403
)
})
test_that("Use key that's not enabled for the API (Sheets)", {
expect_recorded_error(
"sheets-spreadsheets-get-api-key-not-enabled_403",
403
)
})
test_that("Request with invalid argument (Sheets, bad range)", {
expect_recorded_error(
"sheets-spreadsheets-get-nonexistent-range_400",
400
)
})
test_that("Request with bad field mask (Sheets)", {
expect_recorded_error(
"sheets-spreadsheets-get-bad-field-mask_400",
400
)
})
test_that("Request for nonexistent resource (Sheets)", {
expect_recorded_error(
"sheets-spreadsheets-get-nonexistent-sheet-id_404",
404
)
})
test_that("Request with invalid value (tokeninfo, stale token)", {
expect_recorded_error(
"tokeninfo-stale_400",
400
)
})
test_that("Request to bad URL (tokeninfo, HTML content)", {
expect_recorded_error(
"tokeninfo-bad-path_404",
404
)
})
# helpers ----
test_that("RPC codes can be looked up (or not)", {
expect_match(
rpc_description("ALREADY_EXISTS"),
"resource .* already exists"
)
expect_null(rpc_description("MATCHES_NOTHING"))
})
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.