Nothing
test_that("list_active_clusters returns empty list when no tasks", {
skip_on_cran()
skip_if_not_installed("mockery")
# Mock ECS client
ecs_client <- list(
list_tasks = function(...) {
list(taskArns = list())
}
)
mockery::stub(list_active_clusters, "get_ecs_client", function(...) {
ecs_client
})
result <- list_active_clusters("us-east-1")
expect_type(result, "list")
expect_length(result, 0)
})
test_that("list_active_clusters groups tasks by cluster ID", {
skip_on_cran()
skip_if_not_installed("mockery")
# Mock ECS client
ecs_client <- list(
list_tasks = function(...) {
list(
taskArns = list(
"arn:task-1",
"arn:task-2",
"arn:task-3"
)
)
},
describe_tasks = function(...) {
list(
tasks = list(
list(
taskArn = "arn:task-1",
startedAt = as.numeric(Sys.time()),
lastStatus = "RUNNING",
overrides = list(
containerOverrides = list(
list(
environment = list(
list(name = "CLUSTER_ID", value = "cluster-A")
)
)
)
)
),
list(
taskArn = "arn:task-2",
startedAt = as.numeric(Sys.time()),
lastStatus = "RUNNING",
overrides = list(
containerOverrides = list(
list(
environment = list(
list(name = "CLUSTER_ID", value = "cluster-A")
)
)
)
)
),
list(
taskArn = "arn:task-3",
startedAt = as.numeric(Sys.time()),
lastStatus = "RUNNING",
overrides = list(
containerOverrides = list(
list(
environment = list(
list(name = "CLUSTER_ID", value = "cluster-B")
)
)
)
)
)
)
)
}
)
mockery::stub(list_active_clusters, "get_ecs_client", function(...) {
ecs_client
})
result <- list_active_clusters("us-east-1")
expect_length(result, 2)
expect_true("cluster-A" %in% names(result))
expect_true("cluster-B" %in% names(result))
expect_equal(result[["cluster-A"]]$task_count, 2)
expect_equal(result[["cluster-B"]]$task_count, 1)
})
test_that("list_active_clusters handles tasks without cluster ID", {
skip_on_cran()
skip_if_not_installed("mockery")
# Mock ECS client
ecs_client <- list(
list_tasks = function(...) {
list(taskArns = list("arn:task-1"))
},
describe_tasks = function(...) {
list(
tasks = list(
list(
taskArn = "arn:task-1",
startedAt = as.numeric(Sys.time()),
lastStatus = "RUNNING",
overrides = list(
containerOverrides = list(
list(
environment = list() # No CLUSTER_ID
)
)
)
)
)
)
}
)
mockery::stub(list_active_clusters, "get_ecs_client", function(...) {
ecs_client
})
result <- list_active_clusters("us-east-1")
# Should return empty list (no cluster ID found)
expect_length(result, 0)
})
test_that("list_active_clusters handles ECS errors gracefully", {
skip_on_cran()
skip_if_not_installed("mockery")
# Mock ECS client that throws error
ecs_client <- list(
list_tasks = function(...) {
stop("ClusterNotFoundException")
}
)
mockery::stub(list_active_clusters, "get_ecs_client", function(...) {
ecs_client
})
result <- list_active_clusters("us-east-1")
expect_type(result, "list")
expect_length(result, 0)
})
test_that("list_active_clusters includes task details", {
skip_on_cran()
skip_if_not_installed("mockery")
start_time <- as.numeric(Sys.time())
# Mock ECS client
ecs_client <- list(
list_tasks = function(...) {
list(taskArns = list("arn:task-1"))
},
describe_tasks = function(...) {
list(
tasks = list(
list(
taskArn = "arn:task-1",
startedAt = start_time,
lastStatus = "RUNNING",
overrides = list(
containerOverrides = list(
list(
environment = list(
list(name = "CLUSTER_ID", value = "test-cluster")
)
)
)
)
)
)
)
}
)
mockery::stub(list_active_clusters, "get_ecs_client", function(...) {
ecs_client
})
result <- list_active_clusters("us-east-1")
cluster <- result[["test-cluster"]]
expect_equal(cluster$cluster_id, "test-cluster")
expect_equal(cluster$task_count, 1)
expect_length(cluster$tasks, 1)
task <- cluster$tasks[[1]]
expect_equal(task$task_arn, "arn:task-1")
expect_equal(task$started_at, start_time)
expect_equal(task$status, "RUNNING")
})
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.