Nothing
context("Test utility helper functions")
test_that("clean_domains removes common prefixes and paths", {
expect_equal(rdomains:::clean_domains(" google.com "), "google.com")
expect_equal(rdomains:::clean_domains("http://www.google.com"), "google.com")
expect_equal(rdomains:::clean_domains("https://google.com"), "google.com")
expect_equal(rdomains:::clean_domains("www.google.com"), "google.com")
expect_equal(rdomains:::clean_domains("https://google.com/path"), "google.com")
expect_equal(rdomains:::clean_domains("http://www.google.com/path/to/page"), "google.com")
})
test_that("clean_domains handles multiple domains", {
input <- c("http://www.google.com", " facebook.com ", "https://twitter.com/user")
expected <- c("google.com", "facebook.com", "twitter.com")
expect_equal(rdomains:::clean_domains(input), expected)
})
test_that("validate_domains catches NULL input", {
expect_error(
rdomains:::validate_domains(NULL),
"must not be NULL"
)
})
test_that("validate_domains catches empty strings", {
expect_error(
rdomains:::validate_domains(""),
"contains empty strings"
)
expect_error(
rdomains:::validate_domains(c("google.com", "", "facebook.com")),
"contains empty strings"
)
})
test_that("validate_domains catches non-character input", {
expect_error(
rdomains:::validate_domains(123),
"character"
)
expect_error(
rdomains:::validate_domains(list("google.com")),
"character"
)
})
test_that("validate_domains accepts valid input", {
expect_silent(rdomains:::validate_domains("google.com"))
expect_silent(rdomains:::validate_domains(c("google.com", "facebook.com")))
})
test_that("validate_data_file provides helpful errors for missing files", {
expect_error(
rdomains:::validate_data_file("nonexistent.csv", "default.csv", "get_data"),
"File not found"
)
})
test_that("validate_data_file works with NULL path and existing default", {
temp_file <- tempfile(fileext = ".csv")
writeLines("test", temp_file)
result <- rdomains:::validate_data_file(NULL, temp_file, "get_data")
expect_equal(result, temp_file)
unlink(temp_file)
})
test_that("validate_data_file works with specified path", {
temp_file <- tempfile(fileext = ".csv")
writeLines("test", temp_file)
result <- rdomains:::validate_data_file(temp_file, "default.csv", "get_data")
expect_equal(result, temp_file)
unlink(temp_file)
})
test_that("get_api_key retrieves from parameter", {
key <- rdomains:::get_api_key("test_key", "ENV_VAR", "Service")
expect_equal(key, "test_key")
})
test_that("get_api_key retrieves from environment", {
Sys.setenv(TEST_API_KEY = "env_key")
key <- rdomains:::get_api_key(NULL, "TEST_API_KEY", "Service")
expect_equal(key, "env_key")
Sys.unsetenv("TEST_API_KEY")
})
test_that("get_api_key errors when key not found", {
Sys.unsetenv("MISSING_KEY")
expect_error(
rdomains:::get_api_key(NULL, "MISSING_KEY", "Service"),
"API key not found"
)
})
test_that("build_categorization_prompt creates valid prompt", {
prompt <- rdomains:::build_categorization_prompt("google.com", c("tech", "social", "other"))
expect_true(grepl("google.com", prompt))
expect_true(grepl("tech", prompt))
expect_true(grepl("social", prompt))
expect_true(grepl("other", prompt))
})
test_that("apply_rate_limit sleeps appropriately", {
start_time <- Sys.time()
rdomains:::apply_rate_limit(1, 3, 0.1)
elapsed <- as.numeric(difftime(Sys.time(), start_time, units = "secs"))
expect_true(elapsed >= 0.1)
})
test_that("apply_rate_limit doesn't sleep on last iteration", {
start_time <- Sys.time()
rdomains:::apply_rate_limit(3, 3, 1.0)
elapsed <- as.numeric(difftime(Sys.time(), start_time, units = "secs"))
expect_true(elapsed < 0.5)
})
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.