test_that("usage reflects positional argument requiredness", { base_lines <- c( "#!/usr/bin/env Rapp", "#| name: usage-test", "#| description: Check required placeholder formatting.", "", "#| description: Root directory.", "#| arg_type: positional", "root <- \".\"" ) capture_usage <- function(required_flag = NULL) { lines <- base_lines if (!is.null(required_flag)) { lines <- append( lines, values = sprintf("#| required: %s", required_flag), after = 5 ) } help_lines_from_script(lines, prefix = "rapp-usage-") } usage_required <- capture_usage("true") usage_optional <- capture_usage("false") usage_default <- capture_usage() usage_line <- function(lines) { lines[startsWith(lines, "Usage: ")] } expect_match(usage_line(usage_required), " $") expect_match(usage_line(usage_default), " $") expect_match(usage_line(usage_optional), " \\[\\]$") }) test_that("short annotation values stay character", { lines <- help_lines_from_script( c( "#!/usr/bin/env Rapp", "#| name: short-test", "#| description: Ensure short flag coercion.", "", "#| short: 1", "#| description: Example option.", "option <- \"\"" ), prefix = "rapp-short-" ) expect_true(any(grepl("-1, --option