test/docs/pundit_test.rb in trailblazer-2.0.0.beta1 vs test/docs/pundit_test.rb in trailblazer-2.0.0.beta2

- old
+ new

@@ -7,10 +7,14 @@ end def create? @user == Module && @model.id.nil? end + + def new? + @user == Class + end end #:policy end #-- # with policy @@ -36,15 +40,34 @@ #:pundit-result end result["result.policy.default"].success?.must_equal true result["result.policy.default"]["policy"].is_a?(MyPolicy).must_equal true end - #--- - #- Guard inheritance + #--- + #- override class New < Create + override Policy::Pundit( MyPolicy, :new? ) end it { New["pipetree"].inspect.must_equal %{[>>operation.new,&model.build,&policy.default.eval]} } + it { New.({}, "current_user" => Class ).inspect("model").must_equal %{<Result:true [#<struct DocsPunditProcTest::Song id=nil>] >} } + it { New.({}, "current_user" => nil ).inspect("model").must_equal %{<Result:false [#<struct DocsPunditProcTest::Song id=nil>] >} } + + #--- + #- override with :name + class Edit < Trailblazer::Operation + step Policy::Pundit( MyPolicy, :create?, name: "first" ) + step Policy::Pundit( MyPolicy, :new?, name: "second" ) + end + + class Update < Edit + override Policy::Pundit( MyPolicy, :new?, name: "first" ) + end + + it { Edit["pipetree"].inspect.must_equal %{[>>operation.new,&policy.first.eval,&policy.second.eval]} } + it { Edit.({}, "current_user" => Class).inspect("model").must_equal %{<Result:false [nil] >} } + it { Update["pipetree"].inspect.must_equal %{[>>operation.new,&policy.first.eval,&policy.second.eval]} } + it { Update.({}, "current_user" => Class).inspect("model").must_equal %{<Result:true [nil] >} } #--- # dependency injection class AnotherPolicy < MyPolicy def create?