test/docs/guard_test.rb in trailblazer-2.0.7 vs test/docs/guard_test.rb in trailblazer-2.1.0.beta1
- old
+ new
@@ -1,92 +1,85 @@
require "test_helper"
#--
# with proc
class DocsGuardProcTest < Minitest::Spec
- # test without KWs, only options.
- class Update < Trailblazer::Operation
- step Policy::Guard( ->(options) { options["params"][:pass] } )
- step ->(options, *) { options["x"] = true }
- end
-
- it { Update.(pass: false)["x"].must_equal nil }
- it { Update.(pass: true)["x"].must_equal true }
- # TODO: test excp when current_user not available
-
#:proc
class Create < Trailblazer::Operation
- step Policy::Guard( ->(options, params:, **) { params[:pass] } )
+ step Policy::Guard( ->(options, pass:, **) { pass } )
#~pipeonly
step :process
- def process(*)
- self["x"] = true
+ def process(options, **)
+ options["x"] = true
end
#~pipeonly end
end
#:proc end
- it { Create.(pass: false)["x"].must_equal nil }
+ it { Create.(pass: false)["x"].must_be_nil }
it { Create.(pass: true)["x"].must_equal true }
#- result object, guard
it { Create.(pass: true)["result.policy.default"].success?.must_equal true }
it { Create.(pass: false)["result.policy.default"].success?.must_equal false }
-
-
-
- #---
+ #---
#- Guard inheritance
class New < Create
step Policy::Guard( ->(options, current_user:, **) { current_user } ), override: true
end
- it { New["pipetree"].inspect.must_equal %{[>operation.new,>policy.default.eval,>process]} }
+ it { Trailblazer::Operation::Inspect.(New).must_equal %{[>policy.default.eval,>process]} }
end
#---
# with Callable
class DocsGuardTest < Minitest::Spec
#:callable
class MyGuard
include Uber::Callable
- def call(options, params:, **)
- params[:pass]
+ def call(options, pass:, **)
+ pass
end
end
#:callable end
#:callable-op
class Create < Trailblazer::Operation
step Policy::Guard( MyGuard.new )
#~pipe-only
step :process
- def process(*); self[:x] = true; end
+
+ def process(options, **)
+ options[:x] = true
+ end
#~pipe-only end
end
#:callable-op end
- it { Create.(pass: false)[:x].must_equal nil }
+ it { Create.(pass: false)[:x].must_be_nil }
it { Create.(pass: true)[:x].must_equal true }
end
#---
# with method
class DocsGuardMethodTest < Minitest::Spec
#:method
class Create < Trailblazer::Operation
step Policy::Guard( :pass? )
- def pass?(options, params:, **)
- params[:pass]
+ def pass?(options, pass:, **)
+ pass
end
#~pipe-onlyy
step :process
- def process(*); self["x"] = true; end
+
+ def process(options, **)
+ options["x"] = true
+ end
#~pipe-onlyy end
end
#:method end
it { Create.(pass: false).inspect("x").must_equal %{<Result:false [nil] >} }
@@ -101,16 +94,16 @@
step Policy::Guard( ->(options, current_user:, **) { current_user }, name: :user )
# ...
end
#:name end
- it { Create.({}, "current_user" => nil )["result.policy.user"].success?.must_equal false }
- it { Create.({}, "current_user" => Module)["result.policy.user"].success?.must_equal true }
+ it { Create.(:current_user => nil )["result.policy.user"].success?.must_equal false }
+ it { Create.(:current_user => Module)["result.policy.user"].success?.must_equal true }
it {
#:name-result
- result = Create.({}, "current_user" => true)
+ result = Create.(:current_user => true)
result["result.policy.user"].success? #=> true
#:name-result end
}
end
@@ -121,17 +114,17 @@
class Create < Trailblazer::Operation
step Policy::Guard( ->(options, current_user:, **) { current_user == Module } )
end
#:di-op end
- it { Create.({}, "current_user" => Module).inspect("").must_equal %{<Result:true [nil] >} }
+ it { Create.(:current_user => Module).inspect("").must_equal %{<Result:true [nil] >} }
it {
result =
#:di-call
Create.({},
- "current_user" => Module,
- "policy.default.eval" => Trailblazer::Operation::Policy::Guard.build(->(options) { false })
+ :current_user => Module,
+ "policy.default.eval" => Trailblazer::Operation::Policy::Guard.build(->(options, **) { false })
)
#:di-call end
result.inspect("").must_equal %{<Result:false [nil] >} }
end
@@ -141,11 +134,11 @@
class Create < Trailblazer::Operation
step Policy::Guard( ->(options, current_user:, **) { current_user == Module } )
end
it { assert_raises(ArgumentError) { Create.() } }
- it { Create.({}, "current_user" => Module).success?.must_equal true }
+ it { Create.(:current_user => Module).success?.must_equal true }
end
#---
# before:
class DocsGuardPositionTest < Minitest::Spec
@@ -155,13 +148,13 @@
step Policy::Guard( :authorize! ),
before: :model!
end
#:before end
- it { Create["pipetree"].inspect.must_equal %{[>operation.new,>policy.default.eval,>model!]} }
+ it { Trailblazer::Operation::Inspect.(Create).must_equal %{[>policy.default.eval,>model!]} }
it do
#:before-pipe
- puts Create["pipetree"].inspect(style: :rows) #=>
+ Trailblazer::Operation::Inspect.(Create, style: :rows) #=>
# 0 ========================>operation.new
# 1 ==================>policy.default.eval
# 2 ===============================>model!
#:before-pipe end
end