Nothing
test_that("ensure_log_group creates log group if missing", {
skip_on_cran()
skip_if_not_installed("mockery")
# Mock cloudwatchlogs client
logs_client <- list(
describe_log_groups = function(...) {
stop("ResourceNotFoundException")
},
create_log_group = function(...) {
list()
}
)
mockery::stub(ensure_log_group, "paws.management::cloudwatchlogs", function(...) {
logs_client
})
# Should not error
expect_error(ensure_log_group("/aws/ecs/test", "us-east-1"), NA)
})
test_that("get_execution_role_arn returns configured role", {
skip_on_cran()
skip_if_not_installed("mockery")
mockery::stub(get_execution_role_arn, "get_starburst_config", function() {
list(execution_role_arn = "arn:aws:iam::123456789012:role/test-role")
})
result <- get_execution_role_arn("us-east-1")
expect_equal(result, "arn:aws:iam::123456789012:role/test-role")
})
test_that("get_execution_role_arn constructs default ARN", {
skip_on_cran()
skip_if_not_installed("mockery")
mockery::stub(get_execution_role_arn, "get_starburst_config", function() {
list(aws_account_id = "123456789012")
})
result <- get_execution_role_arn("us-east-1")
expect_equal(result, "arn:aws:iam::123456789012:role/starburstECSExecutionRole")
})
test_that("get_task_role_arn constructs default ARN", {
skip_on_cran()
skip_if_not_installed("mockery")
mockery::stub(get_task_role_arn, "get_starburst_config", function() {
list(aws_account_id = "123456789012")
})
result <- get_task_role_arn("us-east-1")
expect_equal(result, "arn:aws:iam::123456789012:role/starburstECSTaskRole")
})
test_that("get_or_create_task_definition uses existing compatible task def", {
skip_on_cran()
skip_if_not_installed("mockery")
# Mock plan object
plan <- list(
region = "us-east-1",
worker_cpu = 2,
worker_memory = 8,
image_uri = "123456789012.dkr.ecr.us-east-1.amazonaws.com/test:latest"
)
# Mock ECS client
ecs_client <- list(
list_task_definitions = function(...) {
list(taskDefinitionArns = list("arn:aws:ecs:us-east-1:123456789012:task-definition/test:1"))
},
describe_task_definition = function(...) {
list(
taskDefinition = list(
taskDefinitionArn = "arn:aws:ecs:us-east-1:123456789012:task-definition/test:1",
cpu = "2048",
memory = "8192",
requiresCompatibilities = list("FARGATE"),
containerDefinitions = list(
list(image = "123456789012.dkr.ecr.us-east-1.amazonaws.com/test:latest")
)
)
)
}
)
mockery::stub(get_or_create_task_definition, "get_ecs_client", function(...) {
ecs_client
})
mockery::stub(get_or_create_task_definition, "get_starburst_config", function() {
list()
})
mockery::stub(get_or_create_task_definition, "ensure_log_group", function(...) {})
mockery::stub(get_or_create_task_definition, "get_execution_role_arn", function(...) {
"arn:aws:iam::123456789012:role/exec-role"
})
mockery::stub(get_or_create_task_definition, "get_task_role_arn", function(...) {
"arn:aws:iam::123456789012:role/task-role"
})
result <- get_or_create_task_definition(plan)
expect_equal(result, "arn:aws:ecs:us-east-1:123456789012:task-definition/test:1")
})
test_that("get_or_create_task_definition creates new task def if needed", {
skip_on_cran()
skip_if_not_installed("mockery")
# Mock plan object
plan <- list(
region = "us-east-1",
worker_cpu = 2,
worker_memory = 8,
image_uri = "123456789012.dkr.ecr.us-east-1.amazonaws.com/test:latest"
)
registered <- FALSE
# Mock ECS client
ecs_client <- list(
list_task_definitions = function(...) {
list(taskDefinitionArns = list())
},
register_task_definition = function(...) {
registered <<- TRUE
list(
taskDefinition = list(
taskDefinitionArn = "arn:aws:ecs:us-east-1:123456789012:task-definition/test:1"
)
)
}
)
mockery::stub(get_or_create_task_definition, "get_ecs_client", function(...) {
ecs_client
})
mockery::stub(get_or_create_task_definition, "get_starburst_config", function() {
list()
})
mockery::stub(get_or_create_task_definition, "ensure_log_group", function(...) {})
mockery::stub(get_or_create_task_definition, "get_execution_role_arn", function(...) {
"arn:aws:iam::123456789012:role/exec-role"
})
mockery::stub(get_or_create_task_definition, "get_task_role_arn", function(...) {
"arn:aws:iam::123456789012:role/task-role"
})
result <- get_or_create_task_definition(plan)
expect_true(registered)
expect_equal(result, "arn:aws:ecs:us-east-1:123456789012:task-definition/test: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.