context("insert_cassette fails well")
test_that("insert_cassette fails well", {
unlink(file.path(vcr_c$dir, "foobar55.yml"))
# must pass a cassette name
expect_error(insert_cassette(), "argument \"name\" is missing")
# record valid values
expect_error(
suppressMessages(insert_cassette("newbar", record = "stuff")),
"'record' value of 'stuff' is not in the allowed set"
)
# match_requests_on valid values
expect_error(
suppressMessages(insert_cassette("newbar", match_requests_on = "stuff")),
"'match_requests_on' values \\(stuff\\) is not in the allowed set"
)
# update_content_length_header valid type
expect_error(
suppressMessages(insert_cassette("newbar3", update_content_length_header = 5)),
"update_content_length_header must be of class logical"
)
# preserve_exact_body_bytes valid type
expect_error(
suppressMessages(insert_cassette("newbar4", preserve_exact_body_bytes = 5)),
"preserve_exact_body_bytes must be of class logical"
)
# persist_with valid value
expect_error(
suppressMessages(insert_cassette("newbar5", persist_with = "foobar55")),
"The requested VCR cassette persister \\(foobar55\\) is not registered"
)
# persist_with valid value
expect_error(
suppressMessages(insert_cassette("newbar6", serialize_with = "howdy")),
"The requested vcr cassette serializer \\(howdy\\) is not registered"
)
})
unlink(list.files(vcr_c$dir, pattern = "newbar", full.names = TRUE))
vcr_configure(warn_on_empty_cassette = FALSE)
context("insert_cassette works")
test_that("insert_cassette works as expected", {
aa <- suppressMessages(insert_cassette("foobar3"))
expect_is(aa, "Cassette")
expect_is(aa$name, "character")
expect_equal(aa$name, "foobar3")
expect_false(aa$allow_playback_repeats)
expect_false(aa$any_new_recorded_interactions())
expect_is(aa$args, "list")
expect_is(aa$call_block, "function")
# eject
aa$eject()
})
test_that("insert_cassette fails well on name checking", {
# no spaces
expect_error(insert_cassette("foo bar"), "no spaces")
# no file ext included - just checking yml/yaml for now
expect_error(insert_cassette("foo.yml"), "extension")
expect_error(insert_cassette("foo.yaml"), "extension")
# no illegal characters
## no forward slash
expect_error(insert_cassette("foo/bar"))
## no question marks
expect_error(insert_cassette("foo?bar"))
## no left carrot
expect_error(insert_cassette("foo<bar"))
## no right carrot
expect_error(insert_cassette("foo>bar"))
## no backward slash
expect_error(insert_cassette("foo\bar"))
## no colon
expect_error(insert_cassette("foo:bar"))
## no pipe
expect_error(insert_cassette("foo|bar"))
## no double quote
expect_error(insert_cassette("foo\"bar"))
# no control characters
expect_error(insert_cassette("foo\nbar"))
# no unix reserved characters
expect_error(insert_cassette("."))
expect_error(insert_cassette(".."))
expect_error(insert_cassette("..."))
# no windows reserved words
expect_error(insert_cassette("con"))
# no trailing dots
expect_error(insert_cassette("foobar."))
# can't be longer than 255
long_name <- paste0(unlist(replicate(10, letters, FALSE)), collapse = "")
expect_error(insert_cassette(long_name))
})
# cleanup
unlink(file.path(vcr_configuration()$dir, "foobar3.yml"))
unlink(list.files(pattern = "newbar", full.names = TRUE))
unlink("foobar55.yml")
unlink("testing1.yml")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.