context("Cassette")
test_that("Cassette", {
expect_is(Cassette, "R6ClassGenerator")
cl <- Cassette$new(name = "stuff")
expect_is(cl, "R6")
expect_is(cl, "Cassette")
# eject cassette
## expect warning from empty cassette checker
expect_warning(cl$eject())
})
test_that("Cassette fails well", {
expect_error(Cassette$new(), "\"name\" is missing")
})
test_that("Cassette fails well with invalid record mode", {
expect_error(
Cassette$new(name = "stuff2", record = "asdfadfs"),
"'record' value of 'asdfadfs' is not in the allowed set"
)
})
test_that("Cassette fails well with invalid request matchers", {
expect_error(
Cassette$new(name = "stuff2", match_requests_on = "x"),
"1 or more 'match_requests_on' values \\(x\\) is not in the allowed set"
)
})
test_that("make_http_interaction works as expected", {
#### Prepare http responses
# crul_resp1 <- crul::HttpClient$new(hb("/get?foo=bar"))$get()
# save(crul_resp1, file = "tests/testthat/crul_resp1.rda", version = 2)
# crul_resp2 <- crul::HttpClient$new(hb("/image/png"))$get()
# save(crul_resp2, file = "tests/testthat/crul_resp2.rda", version = 2)
# httr_resp1 <- httr::GET(hb("/get?foo=bar"))
# save(httr_resp1, file = "tests/testthat/httr_resp1.rda", version = 2)
# httr_resp2 <- httr::GET(hb("/image/png"))
# save(httr_resp2, file = "tests/testthat/httr_resp2.rda", version = 2)
# make a cassettes
zz <- Cassette$new(name = "bluecheese")
# crul, with non-image response body
# $response$body should be class `character`
load("crul_resp1.rda")
aa <- zz$make_http_interaction(crul_resp1)
expect_is(aa, "HTTPInteraction")
expect_is(aa$request, "Request")
expect_is(aa$response, "VcrResponse")
expect_is(aa$response$body, "character")
# crul, with image response body
# $response$body should be class `raw`
load("crul_resp2.rda")
bb <- zz$make_http_interaction(crul_resp2)
expect_is(bb, "HTTPInteraction")
expect_is(bb$request, "Request")
expect_is(bb$response, "VcrResponse")
expect_is(bb$response$body, "raw")
# eject cassette
## expect warning from empty cassette checker
expect_warning(zz$eject())
})
# cleanup
unlink(file.path(vcr_configuration()$dir, "stuff.yml"))
unlink(file.path(vcr_configuration()$dir, "stuff2.yml"))
unlink(file.path(vcr_configuration()$dir, "foobar89.yml"))
unlink(file.path(vcr_configuration()$dir, "bluecheese.yml"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.