test_that("async_whilst", {
count <- 0
result <- NULL
result <- synchronise(async_whilst(
function(...) count < 5,
function() {
delay(1/1000)$then(function(value) count <<- count + 1)
}
))
expect_equal(result, 5)
})
test_that("async_whilst with false test", {
result <- NULL
expect_silent({
synchronise(async_whilst(
function() FALSE,
function() {
delay(1/1000)$then(function(value) stop("Not reached"))
}
))
})
expect_null(result)
})
test_that("error", {
do <- function() {
async_whilst(
function() i < 5,
function() delay(1/1000)$then(function(value) {
i <<- i + 1
if (i >= 3) stop("doh")
})
)
}
i <- 1
expect_error(synchronise(do()), "doh")
i <- 1
do2 <- function() {
do()$
catch(error = function(e) expect_equal(conditionMessage(e), "doh"))
}
synchronise(do2())
})
test_that("test throws", {
called <- FALSE
do <- function() {
async_whilst(
function() stop("doh"),
function() {
delay(1/1000)$then(function(value) called <<- TRUE)
}
)
}
expect_error(synchronise(do()), "doh")
expect_false(called)
called <- FALSE
do2 <- function() {
do()$
catch(error = function(e) expect_equal(conditionMessage(e), "doh"))
}
synchronise(do2())
expect_false(called)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.