test/option_test.rb in trailblazer-option-0.1.0 vs test/option_test.rb in trailblazer-option-0.1.1
- old
+ new
@@ -1,16 +1,16 @@
require "test_helper"
class OptionTest < Minitest::Spec
- def assert_result(result, block = nil)
- _(result).must_equal([{a: 1}, 2, {b: 3}, block])
+ describe "positional and kws" do
+ def assert_result(result, block = nil)
+ _(result).must_equal([{a: 1}, 2, {b: 3}, block])
- _(positional.inspect).must_equal %({:a=>1})
- _(keywords.inspect).must_equal %({:a=>2, :b=>3})
- end
+ _(positional.inspect).must_equal %({:a=>1})
+ _(keywords.inspect).must_equal %({:a=>2, :b=>3})
+ end
- describe "positional and kws" do
class Step
def with_positional_and_keywords(options, a: nil, **more_options, &block)
[options, a, more_options, block]
end
end
@@ -71,17 +71,12 @@
end
end
describe "positionals" do
def assert_result_pos(result)
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.7.0")
- _(result).must_equal([1, 2, [3, 4]])
- _(positionals).must_equal [1, 2, 3, 4]
- else
- _(result).must_equal([1, 2, [3, 4, {}]])
- _(positionals).must_equal [1, 2, 3, 4]
- end
+ _(result).must_equal([1, 2, [3, 4]])
+ _(positionals).must_equal [1, 2, 3, 4]
end
# In Ruby < 3.0, {*args} will grab both positionals and keyword arguments.
class Step
def with_positionals(a, b, *args)
@@ -163,8 +158,48 @@
it "callable" do
option = Trailblazer::Option(WithKeywords)
assert_result_kws option.(keyword_arguments: keywords, exec_context: "something")
+ end
+ end
+
+ describe "no arguments" do
+ def assert_result_no_args(result)
+ _(result).must_equal([])
+ end
+
+ class Step
+ def with_no_args
+ []
+ end
+ end
+
+ class WithNoArgs
+ def self.call
+ []
+ end
+ end
+
+ WITH_NO_ARGS = -> { [] }
+
+ it ":method" do
+ step = Step.new
+
+ option = Trailblazer::Option(:with_no_args)
+
+ assert_result_no_args option.(exec_context: step)
+ end
+
+ it "-> {} lambda" do
+ option = Trailblazer::Option(WITH_NO_ARGS)
+
+ assert_result_no_args option.(exec_context: "something")
+ end
+
+ it "callable" do
+ option = Trailblazer::Option(WithNoArgs)
+
+ assert_result_no_args option.(exec_context: "something")
end
end
end