51 lines
1.9 KiB
Ruby
51 lines
1.9 KiB
Ruby
require_relative "test_helper"
|
|
|
|
# Card #1818501985909868001: a mistaken flag-style invocation like
|
|
# `os-backlog board-ensure --board apprise-api` must fail loudly with a
|
|
# usage error instead of silently creating a Planka board literally named
|
|
# "--board". These are CLI-contract tests (shell out to bin/os-backlog)
|
|
# because the bug is about what the positional NAME arg parsing accepts
|
|
# BEFORE any Planka client/network call is made — no PLANKA_* env vars are
|
|
# set, so if validation didn't happen first, these would instead fail on
|
|
# network auth with a different message.
|
|
class BoardNameValidationCliTest < Minitest::Test
|
|
BIN = File.expand_path("../bin/os-backlog", __dir__)
|
|
|
|
# Strip any live Planka credentials from the child's env: these tests
|
|
# assert that flag-like names are rejected BEFORE build_client ever runs,
|
|
# so no test here may be allowed to reach the network even accidentally.
|
|
def run_cli(*args)
|
|
env = { "PLANKA_BASE_URL" => "", "PLANKA_USERNAME" => "", "PLANKA_PASSWORD" => "" }
|
|
out = IO.popen(env, [RbConfig.ruby, BIN, *args], err: [:child, :out], &:read)
|
|
[out, $?.exitstatus]
|
|
end
|
|
|
|
def test_board_ensure_rejects_flag_like_name
|
|
out, status = run_cli("board-ensure", "--board", "apprise-api")
|
|
|
|
refute_equal 0, status
|
|
assert_match(/board name.*must not start with/i, out)
|
|
end
|
|
|
|
def test_activate_rejects_flag_like_name
|
|
out, status = run_cli("activate", "--board")
|
|
|
|
refute_equal 0, status
|
|
assert_match(/board name.*must not start with/i, out)
|
|
end
|
|
|
|
def test_archive_rejects_flag_like_name
|
|
out, status = run_cli("archive", "--board", "--yes")
|
|
|
|
refute_equal 0, status
|
|
assert_match(/board name.*must not start with/i, out)
|
|
end
|
|
|
|
def test_board_ensure_accepts_normal_name_and_fails_later_on_network
|
|
out, status = run_cli("board-ensure", "apprise-api")
|
|
|
|
refute_equal 0, status
|
|
refute_match(/board name.*must not start with/i, out)
|
|
end
|
|
end
|