# oauth_flow_fetch --------------------------------------------------------
test_that("turns oauth errors to R errors", {
req <- request("http://example.com")
local_mocked_bindings(req_perform = function(...) {
response_json(400L, body = list(error = "1", error_description = "abc"))
})
expect_snapshot(oauth_flow_fetch(req, "test"), error = TRUE)
})
# oauth_flow_parse --------------------------------------------------------
test_that("userful errors if response isn't parseable", {
resp1 <- response(headers = list(`content-type` = "text/plain"))
resp2 <- response_json(body = list())
expect_snapshot(error = TRUE, {
oauth_flow_parse(resp1, "test")
oauth_flow_parse(resp2, "test")
})
})
test_that("can inspect the original response if response isn't parseable", {
resp1 <- response(headers = list(`content-type` = "text/plain"))
resp2 <- response_json(body = list())
tryCatch(
oauth_flow_parse(resp1, "test"),
httr2_oauth_parse = function(cnd) {
expect_equal(cnd$resp, resp1)
}
)
tryCatch(
oauth_flow_parse(resp2, "test"),
httr2_oauth_parse = function(cnd) {
expect_equal(cnd$resp, resp2)
}
)
})
test_that("returns body if known good structure", {
resp <- response_json(body = list(access_token = "10"))
expect_equal(oauth_flow_parse(resp, "test"), list(access_token = "10"))
resp <- response_json(body = list(device_code = "10"))
expect_equal(oauth_flow_parse(resp, "test"), list(device_code = "10"))
resp <- response_json(403L, body = list(error = "10"))
expect_snapshot(oauth_flow_parse(resp, "test"), error = TRUE)
})
test_that("converts expires_in to numeric", {
resp <- response_json(200L, body = list(access_token = "10", expires_in = "20"))
body <- oauth_flow_parse(resp, "test")
expect_equal(body$expires_in, 20)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.