test/test_command_dsl.rb in cri-2.11.0 vs test/test_command_dsl.rb in cri-2.12.0
- old
+ new
@@ -47,11 +47,11 @@
{ short: 'd', long: 'ddd', desc: 'opt d', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil },
{ short: 'e', long: 'eee', desc: 'opt e', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil },
{ short: 'f', long: 'fff', desc: 'opt f', argument: :forbidden, multiple: false, hidden: true, block: nil, default: nil, transform: nil },
],
)
- actual_option_definitions = Set.new(command.option_definitions)
+ actual_option_definitions = Set.new(command.option_definitions.map(&:to_h))
assert_equal expected_option_definitions, actual_option_definitions
end
def test_optional_options
# Define
@@ -82,11 +82,11 @@
[
{ short: 's', long: nil, desc: 'short', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil },
{ short: nil, long: 'long', desc: 'long', argument: :forbidden, multiple: false, hidden: false, block: nil, default: nil, transform: nil },
],
)
- actual_option_definitions = Set.new(command.option_definitions)
+ actual_option_definitions = Set.new(command.option_definitions.map(&:to_h))
assert_equal expected_option_definitions, actual_option_definitions
end
def test_multiple
# Define
@@ -107,11 +107,11 @@
{ short: 'f', long: 'flag', desc: 'flag', argument: :forbidden, multiple: true, hidden: false, block: nil, default: nil, transform: nil },
{ short: 'r', long: 'required', desc: 'req', argument: :required, multiple: true, hidden: false, block: nil, default: nil, transform: nil },
{ short: 'o', long: 'optional', desc: 'opt', argument: :optional, multiple: true, hidden: false, block: nil, default: nil, transform: nil },
],
)
- actual_option_definitions = Set.new(command.option_definitions)
+ actual_option_definitions = Set.new(command.option_definitions.map(&:to_h))
assert_equal expected_option_definitions, actual_option_definitions
end
def test_hidden
# Define
@@ -132,11 +132,11 @@
{ short: 'f', long: 'flag', desc: 'flag', argument: :forbidden, multiple: false, hidden: true, block: nil, default: nil, transform: nil },
{ short: 'r', long: 'required', desc: 'req', argument: :required, multiple: false, hidden: true, block: nil, default: nil, transform: nil },
{ short: 'o', long: 'optional', desc: 'opt', argument: :optional, multiple: false, hidden: true, block: nil, default: nil, transform: nil },
],
)
- actual_option_definitions = Set.new(command.option_definitions)
+ actual_option_definitions = Set.new(command.option_definitions.map(&:to_h))
assert_equal expected_option_definitions, actual_option_definitions
end
def test_required_short_and_long
# Define
@@ -237,8 +237,36 @@
# Check
$did_it_work = false
command.run(%w[certainly])
assert_equal 'certainly', $did_it_work
+ end
+
+ def test_params
+ # Define
+ dsl = Cri::CommandDSL.new
+ dsl.instance_eval do
+ name 'moo'
+ usage 'dunno whatever'
+ summary 'does stuff'
+ description 'This command does a lot of stuff.'
+
+ param :foo
+ param :bar
+ param :qux
+
+ run do |_opts, args|
+ $args_num = { foo: args[0], bar: args[1], qux: args[2] }
+ $args_sym = { foo: args[:foo], bar: args[:bar], qux: args[:qux] }
+ end
+ end
+ command = dsl.command
+
+ # Run
+ $args_num = '???'
+ $args_sym = '???'
+ command.run(%w[a b c])
+ assert_equal({ foo: 'a', bar: 'b', qux: 'c' }, $args_num)
+ assert_equal({ foo: 'a', bar: 'b', qux: 'c' }, $args_sym)
end
end
end