Nothing
# Note that there are some tests for bindEvent() and caching in
# test-with-cache.R.
test_that("bindEvent and observers", {
trigger <- reactiveVal(1)
val <- reactiveVal(10)
vals <- numeric()
o <- bindEvent(
trigger(),
x = observe({
vals <<- c(vals, val())
})
)
flushReact()
expect_identical(vals, 10)
# Changing val has no effect
val(20)
flushReact()
expect_identical(vals, 10)
# Changing trigger causes the observer to execute
trigger(2)
flushReact()
expect_identical(vals, c(10, 20))
trigger(3)
flushReact()
expect_identical(vals, c(10, 20, 20))
})
test_that("bindEvent alters observers in place", {
v <- reactiveVal(1)
o <- observe({ v() })
o1 <- bindEvent(o, v())
# o and o1 are the same object
expect_identical(o, o1)
# Can't call bindEvent twice on an observer
expect_error(bindEvent(o, v()))
})
test_that("ignoreNULL works", {
n <- 0
observe({ n <<- n+1 }) %>% bindEvent(NULL, ignoreNULL = FALSE)
flushReact()
expect_identical(n, 1)
n <- 0
observe({ n <<- n+1 }) %>% bindEvent(NULL, ignoreNULL = TRUE)
flushReact()
expect_identical(n, 0)
# Two NULLs in the `...` get aggregated into a list, so the result is not
# NULL.
n <- 0
observe({ n <<- n+1 }) %>% bindEvent(NULL, NULL, ignoreNULL = TRUE)
flushReact()
expect_identical(n, 1)
})
test_that("once=TRUE works", {
n <- 0
v <- reactiveVal(1)
observe({ n <<- n + 1 }) %>% bindEvent(v(), once = FALSE)
flushReact()
expect_identical(n, 1)
v(2)
flushReact()
expect_identical(n, 2)
n <- 0
v <- reactiveVal(1)
observe({ n <<- n + v() }) %>% bindEvent(v(), once = TRUE)
flushReact()
expect_identical(n, 1)
v(2)
flushReact()
expect_identical(n, 1)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.