test/test_basic_help.rb in cri-2.4.1 vs test/test_basic_help.rb in cri-2.5.0

- old
+ new

@@ -19,6 +19,49 @@ cmd.add_command(help_cmd) help_cmd.run([]) end + def test_run_with_chain_of_commands + cmd = Cri::Command.define do + name 'root' + summary 'I am root!' + + subcommand do + name 'foo' + summary 'I am foo!' + + subcommand do + name 'subsubby' + summary 'I am subsubby!' + end + end + end + + help_cmd = Cri::Command.new_basic_help + cmd.add_command(help_cmd) + + # Simple call + stdout, stderr = capture_io_while do + help_cmd.run([ 'foo' ]) + end + assert_match(/I am foo!/m, stdout) + assert_equal('', stderr) + + # Subcommand + stdout, stderr = capture_io_while do + help_cmd.run([ 'foo', 'subsubby' ]) + end + assert_match(/I am subsubby!/m, stdout) + assert_equal('', stderr) + + # Non-existing subcommand + stdout, stderr = capture_io_while do + assert_raises SystemExit do + help_cmd.run([ 'foo', 'mysterycmd' ]) + end + end + assert_equal '', stdout + assert_match(/foo: unknown command 'mysterycmd'/, stderr) + end + end