tests/testthat/test_handlers.R

test_that("run handlers", {
  r <- Request()
  f <- function(request) {
    request$data <- "a"
    return(request)
  }
  r$handlers <- list(l = HandlerList(f))
  r <- run(r, l)
  expect_equal(r$data, "a")
})

test_that("run multiple handlers", {
  r <- Request()
  f <- function(request) {
    request$data <- TRUE
    return(request)
  }
  g <- function(request) {
    request$data <- NULL
    return(request)
  }
  r$handlers <- list(l = HandlerList(f, g))
  r <- run(r, l)
  expect_null(r$data)
})

test_that("setting and adding handlers", {
  handlers <- Handlers()
  f <- function(x) 1
  handlers$validate <- handlers_set(f)
  expect_equal(handlers$validate$list[[1]]$fn, f)

  g <- function(x) 2
  handlers$validate <- handlers_add_back(handlers$validate, g)
  expect_equal(length(handlers$validate$list), 2)
  expect_equal(handlers$validate$list[[1]]$fn, f)
  expect_equal(handlers$validate$list[[2]]$fn, g)

  h <- function(x) 3
  handlers$validate <- handlers_add_front(handlers$validate, h)
  expect_equal(length(handlers$validate$list), 3)
  expect_equal(handlers$validate$list[[1]]$fn, h)
  expect_equal(handlers$validate$list[[2]]$fn, f)
  expect_equal(handlers$validate$list[[3]]$fn, g)
})

Try the paws.common package in your browser

Any scripts or data that you put into this service are public.

paws.common documentation built on Nov. 12, 2023, 1:08 a.m.