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("foobar")) ## 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")