Nothing
test_that("rate limiting initialization works", {
reset_rate_limit()
expect_true(.virustotal_state$initialized)
expect_equal(.virustotal_state$max_requests, 4)
expect_equal(.virustotal_state$window_size, 60)
expect_length(.virustotal_state$requests, 0)
status <- get_rate_limit_status()
expect_equal(status$requests_used, 0)
expect_equal(status$max_requests, 4)
expect_equal(status$requests_remaining, 4)
})
test_that("rate limiting tracks requests", {
reset_rate_limit()
rate_limit()
status1 <- get_rate_limit_status()
expect_equal(status1$requests_used, 1)
expect_equal(status1$requests_remaining, 3)
rate_limit()
rate_limit()
status2 <- get_rate_limit_status()
expect_equal(status2$requests_used, 3)
expect_equal(status2$requests_remaining, 1)
})
test_that("rate limiting enforces limits", {
reset_rate_limit()
rate_limit()
rate_limit()
rate_limit()
rate_limit()
status <- get_rate_limit_status()
expect_equal(status$requests_used, 4)
expect_equal(status$requests_remaining, 0)
# Next request should trigger rate limit message
expect_message(rate_limit(), "Rate limit reached")
})
test_that("rate limiting window slides correctly", {
reset_rate_limit()
current_time <- as.numeric(Sys.time())
# Older than 60 seconds
.virustotal_state$requests <- c(current_time - 70, current_time - 65)
status <- get_rate_limit_status()
expect_equal(status$requests_used, 0)
})
test_that("rate limiting handles NULL/empty states gracefully", {
.virustotal_state$requests <- NULL
.virustotal_state$max_requests <- NULL
.virustotal_state$window_size <- NULL
.virustotal_state$initialized <- NULL
expect_no_error({
status <- get_rate_limit_status()
expect_equal(status$max_requests, 4)
expect_equal(status$requests_used, 0)
})
expect_no_error(rate_limit())
})
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.