1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
# frozen_string_literal: true
require 'helper'
module Cri
class HelpRendererTestCase < Cri::TestCase
# NOTE: Additional test cases are in test_command.rb
def help_for(cmd)
io = StringIO.new
Cri::HelpRenderer.new(cmd, io: io).render
end
def test_simple
expected = <<~HELP
NAME
help - show help
USAGE
help [command_name]
DESCRIPTION
Show help for the given command, or show general help. When no command is
given, a list of available commands is displayed, as well as a list of
global command-line options. When a command is given, a command
description, as well as command-specific command-line options, are shown.
OPTIONS
-v --verbose show more detailed help
HELP
cmd = Cri::Command.new_basic_help
assert_equal(expected, help_for(cmd))
end
def test_with_defaults
cmd = Cri::Command.define do
name 'build'
optional nil, :'with-animal', 'Add animal', default: 'giraffe'
end
help = help_for(cmd)
assert_match(/^ --with-animal\[=<value>\] Add animal \(default: giraffe\)$/, help)
end
def test_with_summary
cmd = Cri::Command.define do
name 'build'
summary 'do some buildage'
optional nil, :'with-animal', 'Add animal', default: 'giraffe'
end
help = help_for(cmd)
assert_match(/^NAME\n build - do some buildage\n$/, help)
end
def test_without_summary
cmd = Cri::Command.define do
name 'build'
optional nil, :'with-animal', 'Add animal', default: 'giraffe'
end
help = help_for(cmd)
assert_match(/^NAME\n build\n$/, help)
end
end
end
|