diff --git a/R/resp.R b/R/resp.R index 92f52ad8..967f7b09 100644 --- a/R/resp.R +++ b/R/resp.R @@ -106,7 +106,7 @@ new_response <- function( create_response <- function(req, curl_data, body) { the$last_response <- new_response( - method = req_method_get(req), + method = curl_data$method, url = curl_data$url, status_code = curl_data$status_code, headers = as_headers(curl_data$headers), diff --git a/tests/testthat/test-req-perform-parallel.R b/tests/testthat/test-req-perform-parallel.R index 9e568992..580ce613 100644 --- a/tests/testthat/test-req-perform-parallel.R +++ b/tests/testthat/test-req-perform-parallel.R @@ -12,6 +12,15 @@ test_that("can perform a single request", { resps <- req_perform_parallel(reqs) expect_type(resps, "list") expect_length(resps, 1) + + resp <- resps[[1]] + expect_s3_class(resp, "httr2_response") + expect_equal(resp$method, "GET") + expect_equal(resp$url, example_url("/get")) + expect_equal(resp$status_code, 200) + expect_s3_class(resp$headers, "httr2_headers") + expect_type(resp$body, "raw") + expect_equal(resp$request, reqs[[1]]) }) test_that("requests happen in parallel", { diff --git a/tests/testthat/test-req-perform.R b/tests/testthat/test-req-perform.R index c796d61f..edb114e5 100644 --- a/tests/testthat/test-req-perform.R +++ b/tests/testthat/test-req-perform.R @@ -1,10 +1,30 @@ -test_that("success request returns response", { +test_that("successful request returns expected response", { req <- request_test() resp <- req_perform(req) + expect_s3_class(resp, "httr2_response") + expect_equal(resp$method, "GET") + expect_equal(resp$url, example_url("/get")) + expect_equal(resp$status_code, 200) + expect_s3_class(resp$headers, "httr2_headers") + expect_type(resp$body, "raw") expect_equal(resp$request, req) }) +test_that("request updates last_response()", { + req200 <- request_test() + req404 <- request_test("/404") + + resp <- req_perform(req200) + expect_equal(last_response(), resp) + expect_equal(last_request(), req200) + + # even if it errors + try(req_perform(req404), silent = TRUE) + expect_equal(last_response()$status_code, 404) + expect_equal(last_request(), req404) +}) + test_that("curl errors become errors", { local_mocked_bindings(curl_fetch = function(...) abort("Failed to connect"))