context("default handlers")
test_that("404 handler sets 404", {
res <- PlumberResponse$new()
val <- default404Handler(list(), res)
expect_equal(res$status, 404)
expect_match(val$error, "404")
expect_match(val$error, "Not Found")
})
test_that("405 handling is ok, get the right verbs", {
pr <- pr()
sub <- pr()
sub$handle("GET", "/test", force)
pr$mount("/barret", sub)
expect_equal(allowed_verbs(pr, path_to_find = "/barret/test"), "GET")
expect_null(allowed_verbs(pr, path_to_find = "/subroute/not_found"))
expect_null(allowed_verbs(pr, path_to_find = "/barret/"))
expect_null(allowed_verbs(pr, path_to_find = "/barret/wrong"))
expect_false(is_405(pr, path_to_find = "/barret/test", "GET"))
expect_true(is_405(pr, path_to_find = "/barret/test", "POST"))
expect_false(is_405(pr, path_to_find = "/subroute/not_found"))
pr <- pr()
sub <- pr()
sub$handle("GET", "/test", force)
pr$mount("/", sub)
expect_equal(allowed_verbs(pr, path_to_find = "/test"), "GET")
expect_null(allowed_verbs(pr, path_to_find = "/subroute/not_found"))
expect_null(allowed_verbs(pr, path_to_find = "/barret/"))
expect_null(allowed_verbs(pr, path_to_find = "/barret/wrong"))
})
test_that("default error handler returns an object with an error property", {
res <- PlumberResponse$new()
capture.output(val <- defaultErrorHandler()(list(), res, "I'm an error!"))
expect_match(val$error, "500")
expect_match(val$error, "Internal server error")
expect_equal(res$status, 500)
})
test_that("error handler doesn't clobber non-200 status", {
res <- PlumberResponse$new()
res$status <- 403
capture.output(val <- defaultErrorHandler()(list(), res, "I'm an error!"))
expect_match(val$error, "Internal error")
expect_equal(res$status, 403)
})
test_that("error handler only includes message in debug mode.", {
res <- PlumberResponse$new()
capture.output(val <- defaultErrorHandler()(list(), res, "I'm an error!"))
expect_null(val$message)
res <- PlumberResponse$new()
capture.output({
val <- defaultErrorHandler()(
req = list(pr = list(getDebug = function() { TRUE })),
res,
"I'm an error!"
)
})
expect_equal(val$message, "I'm an error!")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.