test/test_command_dsl.rb in cri-2.14.0 vs test/test_command_dsl.rb in cri-2.15.0
- old
+ new
@@ -267,9 +267,35 @@
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
+ def test_params_transform
+ # 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, transform: ->(a) { a.upcase }
+
+ run do |_opts, args|
+ $args_num = { foo: args[0] }
+ $args_sym = { foo: args[:foo] }
+ end
+ end
+ command = dsl.command
+
+ # Run
+ $args_num = '???'
+ $args_sym = '???'
+ command.run(%w[abc])
+ assert_equal({ foo: 'ABC' }, $args_num)
+ assert_equal({ foo: 'ABC' }, $args_sym)
+ end
+
def test_no_params_with_one_param_specified
dsl = Cri::CommandDSL.new
err = assert_raises Cri::CommandDSL::AlreadySpecifiedWithParams do
dsl.instance_eval do
name 'moo'