Sha256: 02a1aaf7d797b24ff6fc4761ccd1c0f561ef518f122563082ffd7badda9be37e

Contents?: true

Size: 1.5 KB

Versions: 17

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

require 'helper'

module Cri
  class BasicHelpTestCase < Cri::TestCase
    def test_run_without_supercommand
      cmd = Cri::Command.new_basic_help

      assert_raises Cri::NoHelpAvailableError do
        cmd.run([])
      end
    end

    def test_run_with_supercommand
      cmd = Cri::Command.define do
        name 'meh'
      end

      help_cmd = Cri::Command.new_basic_help
      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(%w[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(%w[foo mysterycmd])
        end
      end
      assert_equal '', stdout
      assert_match(/foo: unknown command 'mysterycmd'/, stderr)
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
cri-2.15.12 test/test_basic_help.rb
cri-2.15.11 test/test_basic_help.rb
cri-2.15.10 test/test_basic_help.rb
cri-2.15.9 test/test_basic_help.rb
cri-2.15.8 test/test_basic_help.rb
cri-2.15.7 test/test_basic_help.rb
cri-2.15.6 test/test_basic_help.rb
cri-2.15.5 test/test_basic_help.rb
cri-2.15.4 test/test_basic_help.rb
cri-2.15.3 test/test_basic_help.rb
cri-2.15.2 test/test_basic_help.rb
cri-2.15.1 test/test_basic_help.rb
cri-2.15.0 test/test_basic_help.rb
cri-2.14.0 test/test_basic_help.rb
cri-2.13.0 test/test_basic_help.rb
cri-2.12.0 test/test_basic_help.rb
cri-2.11.0 test/test_basic_help.rb