Running 'testthat.R' [8s/9s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
  > library(testthat)
  > library(plumber)
  > 
  > test_check("plumber")
  == Skipped tests ===============================================================
  * On CRAN (12)
  
  == Failed tests ================================================================
  -- Error (test-async.R:74:3): sync works ---------------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-`%>%`(...) test-async.R:74:2
    2. +-plumber:::expect_route_sync(.)
    3. | \-testthat::expect_equal(x$body$name, "sync") test-async.R:49:2
    4. |   \-testthat::quasi_label(enquo(object), label, arg = "object")
    5. |     \-rlang::eval_bare(expr, quo_get_env(quo))
    6. +-plumber:::get_result(.)
    7. | \-promises::is.promising(result) test-async.R:18:2
    8. +-plumber:::expect_not_promise(.)
    9. | +-testthat::expect_false(promises::is.promising(x)) test-async.R:40:2
   10. | | \-testthat::quasi_label(enquo(object), label, arg = "object")
   11. | |   \-rlang::eval_bare(expr, quo_get_env(quo))
   12. | \-promises::is.promising(x)
   13. +-plumber:::serve_route(., "/sync")
   14. | \-`%>%`(...) test-async.R:64:2
   15. +-plumber::pr_set_serializer(., serializer_identity())
   16. | \-plumber:::validate_pr(pr)
   17. |   \-plumber::is_plumber(pr)
   18. +-plumber:::async_router()
   19. | \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
   20. \-plumber::pr(.)
   21.   \-Plumber$new(file = file, filters = filters, envir = envir)
   22.     \-plumber:::initialize(...)
   23.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   24.         \-plumber:::make_parser(parsers)
   25.           \-stats::setNames(...)
  -- Error (test-async.R:82:3): async works --------------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-`%>%`(...) test-async.R:82:2
    2. +-plumber:::expect_route_async(.)
    3. | \-testthat::expect_equal(x$body$name, "async") test-async.R:53:2
    4. |   \-testthat::quasi_label(enquo(object), label, arg = "object")
    5. |     \-rlang::eval_bare(expr, quo_get_env(quo))
    6. +-plumber:::get_result(.)
    7. | \-promises::is.promising(result) test-async.R:18:2
    8. +-plumber:::expect_promise(.)
    9. | +-testthat::expect_true(promises::is.promising(x)) test-async.R:44:2
   10. | | \-testthat::quasi_label(enquo(object), label, arg = "object")
   11. | |   \-rlang::eval_bare(expr, quo_get_env(quo))
   12. | \-promises::is.promising(x)
   13. +-plumber:::serve_route(., "/async")
   14. | \-`%>%`(...) test-async.R:64:2
   15. +-plumber::pr_set_serializer(., serializer_identity())
   16. | \-plumber:::validate_pr(pr)
   17. |   \-plumber::is_plumber(pr)
   18. +-plumber:::async_router()
   19. | \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
   20. \-plumber::pr(.)
   21.   \-Plumber$new(file = file, filters = filters, envir = envir)
   22.     \-plumber:::initialize(...)
   23.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   24.         \-plumber:::make_parser(parsers)
   25.           \-stats::setNames(...)
  -- Error (test-async.R:115:3): async hooks create async execution --------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-base::apply(...) test-async.R:115:2
    2. | \-plumber:::FUN(newX[, i], ...)
    3. |   \-plumber:::async_router() test-async.R:133:4
    4. |     \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
    5. \-plumber::pr(.)
    6.   \-Plumber$new(file = file, filters = filters, envir = envir)
    7.     \-plumber:::initialize(...)
    8.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
    9.         \-plumber:::make_parser(parsers)
   10.           \-stats::setNames(...)
  -- Error (test-async.R:193:3): async hooks change value being passed through ---
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::async_router() test-async.R:193:2
   2. | \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
   3. \-plumber::pr(.)
   4.   \-Plumber$new(file = file, filters = filters, envir = envir)
   5.     \-plumber:::initialize(...)
   6.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   7.         \-plumber:::make_parser(parsers)
   8.           \-stats::setNames(...)
  -- Error (test-async.R:246:3): sync error is caught ----------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-testthat::expect_output(...) test-async.R:246:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-testthat::capture_output_lines(code, print, width = width)
    5. |   |   \-testthat:::eval_with_output(code, print = print, width = width)
    6. |   |     +-withr::with_output_sink(temp, withVisible(code))
    7. |   |     | \-base::force(code)
    8. |   |     \-base::withVisible(code)
    9. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   10. +-`%>%`(...) test-async.R:248:6
   11. +-plumber:::expect_route_error(., bad_expression)
   12. | \-testthat::expect_equal(response$body$error, "500 - Internal server error") test-async.R:240:2
   13. |   \-testthat::quasi_label(enquo(object), label, arg = "object")
   14. |     \-rlang::eval_bare(expr, quo_get_env(quo))
   15. +-plumber:::get_result(.)
   16. | \-promises::is.promising(result) test-async.R:18:2
   17. +-plumber:::expect_not_promise(.)
   18. | +-testthat::expect_false(promises::is.promising(x)) test-async.R:40:2
   19. | | \-testthat::quasi_label(enquo(object), label, arg = "object")
   20. | |   \-rlang::eval_bare(expr, quo_get_env(quo))
   21. | \-promises::is.promising(x)
   22. +-plumber:::serve_route(., "/sync-bad")
   23. | \-`%>%`(...) test-async.R:64:2
   24. +-plumber::pr_set_serializer(., serializer_identity())
   25. | \-plumber:::validate_pr(pr)
   26. |   \-plumber::is_plumber(pr)
   27. +-plumber::pr_set_debug(., TRUE)
   28. | \-plumber:::validate_pr(pr)
   29. |   \-plumber::is_plumber(pr)
   30. +-plumber:::async_router()
   31. | \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
   32. \-plumber::pr(.)
   33.   \-Plumber$new(file = file, filters = filters, envir = envir)
   34.     \-plumber:::initialize(...)
   35.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   36.         \-plumber:::make_parser(parsers)
   37.           \-stats::setNames(...)
  -- Error (test-async.R:262:3): async error is caught ---------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-testthat::expect_output(...) test-async.R:262:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-testthat::capture_output_lines(code, print, width = width)
    5. |   |   \-testthat:::eval_with_output(code, print = print, width = width)
    6. |   |     +-withr::with_output_sink(temp, withVisible(code))
    7. |   |     | \-base::force(code)
    8. |   |     \-base::withVisible(code)
    9. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   10. +-`%>%`(...) test-async.R:264:6
   11. +-plumber:::expect_route_error(., bad_expression)
   12. | \-testthat::expect_equal(response$body$error, "500 - Internal server error") test-async.R:240:2
   13. |   \-testthat::quasi_label(enquo(object), label, arg = "object")
   14. |     \-rlang::eval_bare(expr, quo_get_env(quo))
   15. +-plumber:::get_result(.)
   16. | \-promises::is.promising(result) test-async.R:18:2
   17. +-plumber:::expect_promise(.)
   18. | +-testthat::expect_true(promises::is.promising(x)) test-async.R:44:2
   19. | | \-testthat::quasi_label(enquo(object), label, arg = "object")
   20. | |   \-rlang::eval_bare(expr, quo_get_env(quo))
   21. | \-promises::is.promising(x)
   22. +-plumber:::serve_route(., "/async-bad")
   23. | \-`%>%`(...) test-async.R:64:2
   24. +-plumber::pr_set_serializer(., serializer_identity())
   25. | \-plumber:::validate_pr(pr)
   26. |   \-plumber::is_plumber(pr)
   27. +-plumber::pr_set_debug(., TRUE)
   28. | \-plumber:::validate_pr(pr)
   29. |   \-plumber::is_plumber(pr)
   30. +-plumber:::async_router()
   31. | \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
   32. \-plumber::pr(.)
   33.   \-Plumber$new(file = file, filters = filters, envir = envir)
   34.     \-plumber:::initialize(...)
   35.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   36.         \-plumber:::make_parser(parsers)
   37.           \-stats::setNames(...)
  -- Error (test-async.R:285:11): hook errors are caught -------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-base::eval(...)
    2. | \-base::eval(...)
    3. |   \-plumber:::async_router() test-async.R:285:10
    4. |     \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
    5. \-plumber::pr(.)
    6.   \-Plumber$new(file = file, filters = filters, envir = envir)
    7.     \-plumber:::initialize(...)
    8.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
    9.         \-plumber:::make_parser(parsers)
   10.           \-stats::setNames(...)
  -- Error (test-async.R:353:3): accessing two images created using promises does not create an error --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-async_router() %>% pr_set_debug(TRUE) test-async.R:353:2
    2. +-plumber::pr_set_debug(., TRUE)
    3. | \-plumber:::validate_pr(pr)
    4. |   \-plumber::is_plumber(pr)
    5. +-plumber:::async_router()
    6. | \-"files/async.R" %>% test_path() %>% pr() test-async.R:58:2
    7. \-plumber::pr(.)
    8.   \-Plumber$new(file = file, filters = filters, envir = envir)
    9.     \-plumber:::initialize(...)
   10.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   11.         \-plumber:::make_parser(parsers)
   12.           \-stats::setNames(...)
  -- Error (test-content-type.R:17:3): contentType works in files ----------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/content-type.R")) test-content-type.R:17:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-default-handlers.R:12:3): 405 handling is ok, get the right verbs --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-default-handlers.R:12:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-deprecated.R:4:3): addEndpoint continues to work ----------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-Plumber$new() test-deprecated.R:4:2
   2.   \-plumber:::initialize(...)
   3.     \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   4.       \-plumber:::make_parser(parsers)
   5.         \-stats::setNames(...)
  -- Error (test-deprecated.R:13:3): addFilter continues to work -----------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-Plumber$new() test-deprecated.R:13:2
   2.   \-plumber:::initialize(...)
   3.     \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   4.       \-plumber:::make_parser(parsers)
   5.         \-stats::setNames(...)
  -- Error (test-deprecated.R:22:3): addGlobalProcessor continues to work --------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-Plumber$new() test-deprecated.R:22:2
   2.   \-plumber:::initialize(...)
   3.     \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   4.       \-plumber:::make_parser(parsers)
   5.         \-stats::setNames(...)
  -- Error (test-deprecated.R:27:3): addAssets continues to work -----------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-Plumber$new() test-deprecated.R:27:2
   2.   \-plumber:::initialize(...)
   3.     \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   4.       \-plumber:::make_parser(parsers)
   5.         \-stats::setNames(...)
  -- Error (test-deprecated.R:55:3): plumber throws deprecated warning -----------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-testthat::expect_warning(plumber$new(), "Plumber") test-deprecated.R:55:2
    2. | \-testthat:::quasi_capture(enquo(object), label, capture_warnings)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber$new()
    7.   \-plumber:::initialize(...)
    8.     \-super$initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-endpoint-aroundexec.R:111:3): serializers can register all pre,post,aroundexec stages --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::with_tmp_serializers(...) test-endpoint-aroundexec.R:111:2
   2. | \-base::force(expr) helper-with-temp-serializers.R:9:2
   3. \-plumber::plumb(test_path("files/endpoint-serializer.R")) test-endpoint-aroundexec.R:112:4
   4.   \-Plumber$new(file)
   5.     \-plumber:::initialize(...)
   6.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   7.         \-plumber:::make_parser(parsers)
   8.           \-stats::setNames(...)
  -- Error (test-endpoint-aroundexec.R:133:3): not producing an image produces an error --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-plumber:::with_tmp_serializers(...) test-endpoint-aroundexec.R:133:2
    2. | \-base::force(expr) helper-with-temp-serializers.R:9:2
    3. +-plumb(test_path("files/endpoint-serializer.R")) %>% pr_set_debug(TRUE) test-endpoint-aroundexec.R:134:4
    4. +-plumber::pr_set_debug(., TRUE)
    5. | \-plumber:::validate_pr(pr)
    6. |   \-plumber::is_plumber(pr)
    7. \-plumber::plumb(test_path("files/endpoint-serializer.R"))
    8.   \-Plumber$new(file)
    9.     \-plumber:::initialize(...)
   10.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   11.         \-plumber:::make_parser(parsers)
   12.           \-stats::setNames(...)
  -- Error (test-endpoint.R:76:3): Programmatic endpoints work -------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-Plumber$new() test-endpoint.R:76:2
   2.   \-plumber:::initialize(...)
   3.     \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   4.       \-plumber:::make_parser(parsers)
   5.         \-stats::setNames(...)
  -- Error (test-endpoint.R:99:3): Programmatic endpoints with functions work ----
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-Plumber$new() test-endpoint.R:99:2
   2.   \-plumber:::initialize(...)
   3.     \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   4.       \-plumber:::make_parser(parsers)
   5.         \-stats::setNames(...)
  -- Error (test-filters.R:4:3): Filters work ------------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/filters.R")) test-filters.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-filters.R:12:3): Filters can update req$args --------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/filters.R")) test-filters.R:12:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Failure (test-filters.R:17:3): Redundant filters fail -----------------------
  `pr(test_path("files/filter-redundant.R"))` threw an error with unexpected message.
  Expected match: "Multiple @filters"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-filters.R:17:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/filter-redundant.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Failure (test-filters.R:21:3): Empty filters fail ---------------------------
  `pr(test_path("files/filter-empty.R"))` threw an error with unexpected message.
  Expected match: "No @filter name specified"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-filters.R:21:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/filter-empty.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Failure (test-filters.R:25:3): Filter and path fails ------------------------
  `pr(test_path("files/filterpath.R"))` threw an error with unexpected message.
  Expected match: "can only be"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(pr(test_path("files/filterpath.R")), regexp = "can only be") test-filters.R:25:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/filterpath.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Failure (test-filters.R:29:3): Filter and assets fails ----------------------
  `pr(test_path("files/filterasset.R"))` threw an error with unexpected message.
  Expected match: "can only be"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-filters.R:29:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/filterasset.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-filters.R:33:3): Terminal filters indeed terminate --------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/terminal-filter.R")) test-filters.R:33:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-filters.R:38:3): complete addFilter works -----------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-filters.R:38:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-filters.R:64:3): sparse addFilter works -------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-filters.R:64:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-filters.R:86:3): sparse addFilter with a function works ---------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-filters.R:86:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-injection.R:4:3): Injected arguments on req$args get passed on. --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/filter-inject.R")) test-injection.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-legacy.R:5:3): postBody is still available ----------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/legacy.R")) test-legacy.R:5:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-legacy.R:27:3): postBody is not enabled by default --------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/legacy.R")) test-legacy.R:27:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-multibytes.R:23:3): support files with multibytes ---------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-plumber:::with_locale(...) test-multibytes.R:23:2
    2. | \-base::force(expr) test-multibytes.R:9:2
    3. +-plumber:::with_locale(...) test-multibytes.R:24:4
    4. | \-base::force(expr) test-multibytes.R:9:2
    5. \-plumber::pr(test_path("files/multibytes.R")) test-multibytes.R:26:6
    6.   \-Plumber$new(file = file, filters = filters, envir = envir)
    7.     \-plumber:::initialize(...)
    8.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
    9.         \-plumber:::make_parser(parsers)
   10.           \-stats::setNames(...)
  -- Error (test-parse-block.R:228:3): Plumbing block use the right environment --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-testthat::expect_silent(plumb(test_path("files/plumb-envir.R"))) test-parse-block.R:228:2
    2. | \-testthat:::quasi_capture(enquo(object), NULL, evaluate_promise)
    3. |   +-testthat:::.capture(...)
    4. |   | +-withr::with_output_sink(...)
    5. |   | | \-base::force(code)
    6. |   | +-base::withCallingHandlers(...)
    7. |   | \-base::withVisible(code)
    8. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    9. \-plumber::plumb(test_path("files/plumb-envir.R"))
   10.   \-Plumber$new(file)
   11.     \-plumber:::initialize(...)
   12.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   13.         \-plumber:::make_parser(parsers)
   14.           \-stats::setNames(...)
  -- Error (test-parse-body.R:4:3): JSON is consumed on POST ---------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-testthat::expect_equal(...) test-parse-body.R:4:2
   2. | \-testthat::quasi_label(enquo(object), label, arg = "object")
   3. |   \-rlang::eval_bare(expr, quo_get_env(quo))
   4. +-plumber:::parse_body("{\"a\":\"1\"}", content_type = NULL, parsers = make_parser("json"))
   5. \-plumber:::make_parser("json")
   6.   \-stats::setNames(...)
  -- Error (test-parse-body.R:10:3): ending in `==` does not produce a unexpected key --
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-testthat::expect_equal(...) test-parse-body.R:10:2
   2. | \-testthat::quasi_label(enquo(object), label, arg = "object")
   3. |   \-rlang::eval_bare(expr, quo_get_env(quo))
   4. +-plumber:::parse_body(...)
   5. \-plumber:::make_parser("form")
   6.   \-stats::setNames(...)
  -- Error (test-parse-body.R:14:3): Form query strings on post are handled correctly --
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-testthat::expect_equivalent(...) test-parse-body.R:14:2
   2. | \-testthat::quasi_label(enquo(object), label, arg = "object")
   3. |   \-rlang::eval_bare(expr, quo_get_env(quo))
   4. +-plumber:::parse_body("a=", parsers = make_parser("form"))
   5. \-plumber:::make_parser("form")
   6.   \-stats::setNames(...)
  -- Error (test-parse-body.R:19:3): Able to handle UTF-8 ------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-testthat::expect_equal(...) test-parse-body.R:19:2
   2. | \-testthat::quasi_label(enquo(object), label, arg = "object")
   3. |   \-rlang::eval_bare(expr, quo_get_env(quo))
   4. +-plumber:::parse_body(...)
   5. \-plumber:::make_parser("json")
   6.   \-stats::setNames(...)
  -- Error (???): filter passes on content-type ----------------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-testthat::expect_output(...)
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-testthat::capture_output_lines(code, print, width = width)
    5. |   |   \-testthat:::eval_with_output(code, print = print, width = width)
    6. |   |     +-withr::with_output_sink(temp, withVisible(code))
    7. |   |     | \-base::force(code)
    8. |   |     \-base::withVisible(code)
    9. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   10. +-plumber:::req_body_parser(req, make_parser("text"))
   11. \-plumber:::make_parser("text")
   12.   \-stats::setNames(...)
  -- Error (test-parse-body.R:42:3): Test text parser ----------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-testthat::expect_equal(...) test-parse-body.R:42:2
   2. | \-testthat::quasi_label(enquo(object), label, arg = "object")
   3. |   \-rlang::eval_bare(expr, quo_get_env(quo))
   4. +-plumber:::parse_body("Ceci est un texte.", "text/html", make_parser("text"))
   5. \-plumber:::make_parser("text")
   6.   \-stats::setNames(...)
  -- Error (test-parse-body.R:49:3): Test yaml parser ----------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-testthat::expect_equal(...) test-parse-body.R:49:2
   2. | \-testthat::quasi_label(enquo(object), label, arg = "object")
   3. |   \-rlang::eval_bare(expr, quo_get_env(quo))
   4. +-plumber:::parse_body(...)
   5. \-plumber:::make_parser("yaml")
   6.   \-stats::setNames(...)
  -- Error (test-parse-body.R:64:3): Test csv parser -----------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::parse_body(val, "application/csv", make_parser("csv")) test-parse-body.R:64:2
   2. \-plumber:::make_parser("csv")
   3.   \-stats::setNames(...)
  -- Error (test-parse-body.R:84:3): Test tsv parser -----------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::parse_body(...) test-parse-body.R:84:2
   2. \-plumber:::make_parser("tsv")
   3.   \-stats::setNames(...)
  -- Error (test-parse-body.R:104:3): Test feather parser ------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::parse_body(val, "application/feather", make_parser("feather")) test-parse-body.R:104:2
   2. \-plumber:::make_parser("feather")
   3.   \-stats::setNames(...)
  -- Error (test-parse-body.R:121:3): Test multipart output is reduced for argument matching --
  Error: 'names' attribute [3] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::req_body_parser(...) test-parse-body.R:121:2
   2. \-plumber:::make_parser(c("multi", "octet", "json"))
   3.   \-stats::setNames(...)
  -- Error (test-parse-body.R:174:3): Test multipart parser ----------------------
  Error: 'names' attribute [4] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::req_body_parser(...) test-parse-body.R:174:2
   2. \-plumber:::make_parser(c("multi", "json", "rds", "octet"))
   3.   \-stats::setNames(...)
  -- Error (test-parse-body.R:222:3): Test multipart respect content-type --------
  Error: 'names' attribute [2] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::req_body_parser(req, make_parser(c("multi", "tsv"))) test-parse-body.R:222:2
   2. \-plumber:::make_parser(c("multi", "tsv"))
   3.   \-stats::setNames(...)
  -- Error (test-parse-body.R:252:3): Test an array of files upload --------------
  Error: 'names' attribute [3] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::req_body_parser(...) test-parse-body.R:252:2
   2. \-plumber:::make_parser(c("multi", "octet", "json"))
   3.   \-stats::setNames(...)
  -- Error (test-parser.R:14:3): parsers can be combined -------------------------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber:::expect_parsers("json", "json") test-parser.R:14:2
   2.   \-plumber:::make_parser(names) test-parser.R:6:4
   3.     \-stats::setNames(...)
  -- Error (test-parser.R:38:3): parsers work ------------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/parsers.R")) test-parser.R:38:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-path-subst.R:90:3): integration of path parsing works -----------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/path-params.R")) test-path-subst.R:90:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:9:3): Endpoints are properly identified ---------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/endpoints.R")) test-plumber.R:9:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:20:3): Empty file is OK -------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:20:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:25:3): The file is sourced in the envir ---------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/in-env.R")) test-plumber.R:25:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:32:3): Verbs translate correctly ----------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/verbs.R")) test-plumber.R:32:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:52:3): plumb accepts a file ---------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::plumb(test_path("files/endpoints.R")) test-plumber.R:52:2
   2.   \-Plumber$new(file)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:71:3): plumb accepts a directory with a `plumber.R` file --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::plumb(dir = test_path("files")) test-plumber.R:71:2
   2.   \-Plumber$new(file)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:96:3): plumb() a dir leverages `entrypoint.R` ---------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-plumber:::with_tmp_serializers(...) test-plumber.R:96:2
    2. | \-base::force(expr) helper-with-temp-serializers.R:9:2
    3. \-plumber::plumb(dir = test_path("files/entrypoint/")) test-plumber.R:102:4
    4.   \-plumber:::sourceUTF8(entrypoint, new.env(parent = globalenv()))
    5.     \-base::eval(exprs, envir)
    6.       \-base::eval(exprs, envir)
    7.         \-plumber::pr("./plumber.R")
    8.           \-Plumber$new(file = file, filters = filters, envir = envir)
    9.             \-plumber:::initialize(...)
   10.               \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   11.                 \-plumber:::make_parser(parsers)
   12.                   \-stats::setNames(...)
  -- Error (test-plumber.R:124:3): plumb() a dir works with `entrypoint.R` and without `plumber.R` --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. \-plumber::plumb(dir = test_path("files/no-plumber/")) test-plumber.R:124:2
    2.   \-plumber:::sourceUTF8(entrypoint, new.env(parent = globalenv()))
    3.     \-base::eval(exprs, envir)
    4.       \-base::eval(exprs, envir)
    5.         \-plumber::pr("./not-plumber.R")
    6.           \-Plumber$new(file = file, filters = filters, envir = envir)
    7.             \-plumber:::initialize(...)
    8.               \-self$setParsers(c("json", "form", "text", "octet", "multi"))
    9.                 \-plumber:::make_parser(parsers)
   10.                   \-stats::setNames(...)
  -- Failure (test-plumber.R:130:3): Empty endpoints error -----------------------
  `pr(test_path("files/endpoints-empty.R"))` threw an error with unexpected message.
  Expected match: "No path specified"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-plumber.R:130:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/endpoints-empty.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-plumber.R:134:3): The old roxygen-style comments work -----------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/endpoints-old.R")) test-plumber.R:134:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:145:3): routes can be constructed correctly -----------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:145:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:166:3): mounts can be read correctly ------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:166:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:194:3): mounts work -----------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:194:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:216:3): mounting at root path works -------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:216:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:231:3): conflicting mounts behave consistently --------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:231:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:247:3): hooks can be registered -----------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:247:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:260:3): preroute hook gets the right data -------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:260:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:273:3): postroute hook gets the right data and can modify --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:273:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:288:3): preserialize hook gets the right data and can modify --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:288:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:303:3): postserialize hook gets the right data and can modify --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:303:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:319:3): invalid hooks err -----------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:319:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:324:3): handle invokes correctly ----------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:324:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:345:3): No 405 on same path, different verb -----------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:345:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:355:3): handle with an endpoint works -----------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:355:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:364:3): handle with and enpoint and endpoint def fails --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:364:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:370:3): full handle call works ------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:370:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:392:3): Expressions and functions both work on handle --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:392:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:403:3): Expressions and functions both work on filter --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:403:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:429:3): filters and endpoint expressions evaluated in the appropriate (possibly injected) environment --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(envir = env) test-plumber.R:429:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:450:3): filters and endpoints executed in the appropriate environment --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(envir = env) test-plumber.R:450:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:496:3): unmount works ---------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:496:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:509:3): removeHandle works ----------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:509:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-plumber.R:520:3): routes that don't start with a slash are prepended with a slash --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-plumber.R:520:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-preempt.R:4:3): preempts work -----------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/preempt.R")) test-preempt.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Failure (test-preempt.R:13:3): Redundant preempts fail ----------------------
  `pr(test_path("files/preempt-redundant.R"))` threw an error with unexpected message.
  Expected match: "Multiple @preempts"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-preempt.R:13:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/preempt-redundant.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Failure (test-preempt.R:17:3): Empty preempts fail --------------------------
  `pr(test_path("files/preempt-empty.R"))` threw an error with unexpected message.
  Expected match: "No @preempt specified"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-preempt.R:17:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/preempt-empty.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Failure (test-preempt.R:21:3): Non-existant preempts fail -------------------
  `pr(test_path("files/preempt-nonexistent.R"))` threw an error with unexpected message.
  Expected match: "The given @preempt"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-preempt.R:21:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/preempt-nonexistent.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-query-with-multibytes.R:4:3): Support multi-bytes queries -------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/query-with-multibytes.R")) test-query-with-multibytes.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-querystring.R:10:3): path parameters do not convert + to space --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/path-params.R")) test-querystring.R:10:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Failure (test-router-modifier.R:4:3): router modifier works, run does nothing --
  `pr(test_path("files/router-modifier-run.R"))` threw an error with unexpected message.
  Expected match: "method should not be called while"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-router-modifier.R:4:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/router-modifier-run.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-router-modifier.R:7:3): router modifier works, run does nothing --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/router-modifier.R")) test-router-modifier.R:7:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-routing.R:4:3): Routing to errors and 404s works ----------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/router.R")) test-routing.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-serializer-feather.R:12:3): feather serializes properly ---------
  Error: 'names' attribute [1] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::parse_body(val$body, "application/feather", make_parser("feather")) test-serializer-feather.R:12:2
   2. \-plumber:::make_parser("feather")
   3.   \-stats::setNames(...)
  -- Error (test-serializer.R:6:3): Responses returned directly aren't serialized --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/router.R")) test-serializer.R:6:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-serializer.R:15:3): JSON is the default serializer --------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/router.R")) test-serializer.R:15:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-serializer.R:21:3): Overridden serializers apply on filters and endpoints --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::with_tmp_serializers(...) test-serializer.R:21:2
   2. | \-base::force(expr) helper-with-temp-serializers.R:9:2
   3. \-plumber::pr(test_path("files/serializer.R")) test-serializer.R:49:4
   4.   \-Plumber$new(file = file, filters = filters, envir = envir)
   5.     \-plumber:::initialize(...)
   6.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   7.         \-plumber:::make_parser(parsers)
   8.           \-stats::setNames(...)
  -- Failure (test-serializer.R:102:3): Redundant serializers fail ---------------
  `pr(test_path("files/serializer-redundant.R"))` threw an error with unexpected message.
  Expected match: "Multiple @serializers"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-plumber:::with_tmp_serializers(...) test-serializer.R:102:2
    2. | \-base::force(expr) helper-with-temp-serializers.R:9:2
    3. +-testthat::expect_error(...) test-serializer.R:106:4
    4. | \-testthat:::quasi_capture(...)
    5. |   +-testthat:::.capture(...)
    6. |   | \-base::withCallingHandlers(...)
    7. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    8. \-plumber::pr(test_path("files/serializer-redundant.R"))
    9.   \-Plumber$new(file = file, filters = filters, envir = envir)
   10.     \-plumber:::initialize(...)
   11.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   12.         \-plumber:::make_parser(parsers)
   13.           \-stats::setNames(...)
  -- Failure (test-serializer.R:112:3): Empty serializers fail -------------------
  `pr(test_path("files/serializer-empty.R"))` threw an error with unexpected message.
  Expected match: "No @serializer specified"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-serializer.R:112:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/serializer-empty.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Failure (test-serializer.R:116:3): Non-existant serializers fail ------------
  `pr(test_path("files/serializer-nonexistent.R"))` threw an error with unexpected message.
  Expected match: "No such @serializer"
  Actual message: "'names' attribute [5] must be the same length as the vector [0]"
  Backtrace:
       x
    1. +-testthat::expect_error(...) test-serializer.R:116:2
    2. | \-testthat:::quasi_capture(...)
    3. |   +-testthat:::.capture(...)
    4. |   | \-base::withCallingHandlers(...)
    5. |   \-rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. \-plumber::pr(test_path("files/serializer-nonexistent.R"))
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-serializer.R:140:3): Error handler is passed to serializer ------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. +-plumber:::with_tmp_serializers(...) test-serializer.R:140:2
   2. | \-base::force(expr) helper-with-temp-serializers.R:9:2
   3. \-plumber::pr(test_path("files/serializer-error.R")) test-serializer.R:149:4
   4.   \-Plumber$new(file = file, filters = filters, envir = envir)
   5.     \-plumber:::initialize(...)
   6.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   7.         \-plumber:::make_parser(parsers)
   8.           \-stats::setNames(...)
  -- Error (test-sessions.R:32:3): cookies are set -------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-sessions.R:32:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-sessions.R:57:3): cookies are unset -----------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-sessions.R:57:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-sessions.R:88:3): cookies are read ------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-sessions.R:88:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-sessions.R:119:3): invalid cookies/JSON are handled -------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-sessions.R:119:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-sessions.R:152:3): cookie attributes are set --------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-sessions.R:152:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-shared-secret.R:6:3): requests with shared secrets pass, w/o fail --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-shared-secret.R:6:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-source-values.R:6:5): Variables are populated in local environment, even if created after functions that use them --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/source_values.R")) test-source-values.R:6:4
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-static.R:5:1): (code run outside of `test_that()`) --------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-PlumberStatic$new(test_path("files/static")) test-static.R:5:0
   2.   \-plumber:::initialize(...)
   3.     \-super$initialize(filters = NULL)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:4:3): pr creates new router ----------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-tidy-plumber.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:9:3): pr_handle functions add routes -------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-pr() %>% pr_handle(c("GET", "POST"), "/foo", function() "bar") test-tidy-plumber.R:9:2
    2. +-plumber::pr_handle(., c("GET", "POST"), "/foo", function() "bar")
    3. | \-plumber:::validate_pr(pr)
    4. |   \-plumber::is_plumber(pr)
    5. \-plumber::pr()
    6.   \-Plumber$new(file = file, filters = filters, envir = envir)
    7.     \-plumber:::initialize(...)
    8.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
    9.         \-plumber:::make_parser(parsers)
   10.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:49:3): pr_mount mounts router --------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-pr() %>% pr_get("/hello", function() "Hello") test-tidy-plumber.R:49:2
    2. +-plumber::pr_get(., "/hello", function() "Hello")
    3. | \-plumber::pr_handle(...)
    4. |   \-plumber:::validate_pr(pr)
    5. |     \-plumber::is_plumber(pr)
    6. \-plumber::pr()
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:59:3): pr_static mounts a static router ----------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-pr() %>% pr_static("/ex", system.file("plumber", package = "plumber")) test-tidy-plumber.R:59:2
    2. +-plumber::pr_static(., "/ex", system.file("plumber", package = "plumber"))
    3. | \-plumber::pr_mount(pr, path, PlumberStatic$new(direc))
    4. |   \-plumber:::validate_pr(pr)
    5. |     \-plumber::is_plumber(pr)
    6. \-plumber::pr()
    7.   \-Plumber$new(file = file, filters = filters, envir = envir)
    8.     \-plumber:::initialize(...)
    9.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   10.         \-plumber:::make_parser(parsers)
   11.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:68:3): pr_hooks registers hooks ------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-`%>%`(...) test-tidy-plumber.R:68:2
    2. +-plumber::pr_get(., "/hello", function() "Hello")
    3. | \-plumber::pr_handle(...)
    4. |   \-plumber:::validate_pr(pr)
    5. |     \-plumber::is_plumber(pr)
    6. +-plumber::pr_hook(., "preroute", function() print("Pre-route hook"))
    7. | \-plumber:::validate_pr(pr)
    8. |   \-plumber::is_plumber(pr)
    9. \-plumber::pr()
   10.   \-Plumber$new(file = file, filters = filters, envir = envir)
   11.     \-plumber:::initialize(...)
   12.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   13.         \-plumber:::make_parser(parsers)
   14.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:94:3): pr_cookie adds cookie ---------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-`%>%`(...) test-tidy-plumber.R:94:2
    2. +-plumber::pr_get(...)
    3. | \-plumber::pr_handle(...)
    4. |   \-plumber:::validate_pr(pr)
    5. |     \-plumber::is_plumber(pr)
    6. +-plumber::pr_cookie(., random_cookie_key(), name = "counter")
    7. | \-plumber:::validate_pr(pr)
    8. |   \-plumber::is_plumber(pr)
    9. \-plumber::pr()
   10.   \-Plumber$new(file = file, filters = filters, envir = envir)
   11.     \-plumber:::initialize(...)
   12.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   13.         \-plumber:::make_parser(parsers)
   14.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:120:3): pr default functions perform as expected --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. +-`%>%`(...) test-tidy-plumber.R:120:2
    2. +-plumber::pr_get(., "/hello", function() "Hello")
    3. | \-plumber::pr_handle(...)
    4. |   \-plumber:::validate_pr(pr)
    5. |     \-plumber::is_plumber(pr)
    6. +-plumber::pr_set_serializer(., serialized())
    7. | \-plumber:::validate_pr(pr)
    8. |   \-plumber::is_plumber(pr)
    9. \-plumber::pr()
   10.   \-Plumber$new(file = file, filters = filters, envir = envir)
   11.     \-plumber:::initialize(...)
   12.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   13.         \-plumber:::make_parser(parsers)
   14.           \-stats::setNames(...)
  -- Error (test-tidy-plumber.R:166:3): pr_filter adds filters -------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-tidy-plumber.R:166:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-warnings.R:4:3): Routing to errors and 404s works ---------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/warn.R")) test-warnings.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-zzz-openapi.R:65:3): getApiSpec works with mounted routers ------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-zzz-openapi.R:65:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-zzz-openapi.R:308:3): custom spec works -------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-zzz-openapi.R:308:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-zzz-openapi.R:324:3): no params plumber router still produces spec when there is a func params --
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr() test-zzz-openapi.R:324:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  -- Error (test-zzz-plumb_api.R:64:3): all example plumber apis plumb -----------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
       x
    1. \-plumber:::for_each_plumber_api(identity) test-zzz-plumb_api.R:64:2
    2.   \-base::lapply(...) helper-for-each-plumber-api.R:3:2
    3.     \-plumber:::FUN(X[[i]], ...)
    4.       \-plumber::plumb_api(package, name) helper-for-each-plumber-api.R:18:10
    5.         \-plumber::plumb(...)
    6.           \-Plumber$new(file)
    7.             \-plumber:::initialize(...)
    8.               \-self$setParsers(c("json", "form", "text", "octet", "multi"))
    9.                 \-plumber:::make_parser(parsers)
   10.                   \-stats::setNames(...)
  -- Error (test-zzzz-include.R:4:3): Includes work ------------------------------
  Error: 'names' attribute [5] must be the same length as the vector [0]
  Backtrace:
      x
   1. \-plumber::pr(test_path("files/includes.R")) test-zzzz-include.R:4:2
   2.   \-Plumber$new(file = file, filters = filters, envir = envir)
   3.     \-plumber:::initialize(...)
   4.       \-self$setParsers(c("json", "form", "text", "octet", "multi"))
   5.         \-plumber:::make_parser(parsers)
   6.           \-stats::setNames(...)
  
  [ FAIL 123 | WARN 0 | SKIP 12 | PASS 583 ]
  Error: Test failures
  Execution halted