test/operation_test.rb in trailblazer-operation-0.4.1 vs test/operation_test.rb in trailblazer-operation-0.5.0
- old
+ new
@@ -11,11 +11,18 @@
pass :wasnt_ok!
pass :was_ok!
fail :return_true!
fail :return_false!
- def decide!(options, decide:raise, **)
+ step :bla, input: ->(ctx, *) { {id: ctx.inspect} }, output: ->(scope, ctx) { ctx["hello"] = scope["1"]; ctx }
+
+ def bla(ctx, id:1, **)
+ puts id
+ true
+ end
+
+ def decide!(options, decide: raise, **)
options["a"] = true
decide
end
def wasnt_ok!(options, **)
@@ -24,38 +31,41 @@
def was_ok!(options, **)
options["x"] = true
end
- def return_true! (options, **); options["b"] = true end
+ def return_true!(options, **); options["b"] = true end
+
def return_false!(options, **); options["c"] = false end
end
it { Create.(decide: true).inspect("a", "x", "y", "b", "c").must_equal %{<Result:true [true, true, false, nil, nil] >} }
it { Create.(decide: false).inspect("a", "x", "y", "b", "c").must_equal %{<Result:false [true, nil, nil, true, false] >} }
-
+ it { Create.(decide: nil).keys.must_equal(%i(decide a b c)) }
+ it { Create.(decide: nil).to_hash.must_equal(decide: nil, a: true, b: true, c: false) }
#---
#- trace
it do
-
end
#---
#- empty class
class Noop < Trailblazer::Operation
end
it { Noop.().inspect("params").must_equal %{<Result:true [nil] >} }
+ it { Noop.().keys.must_equal([]) }
+ it { Noop.().to_hash.must_equal({}) }
#---
#- pass
#- fail
class Update < Trailblazer::Operation
- pass ->(options, **) { options["a"] = false }
- step ->(options, params:raise, **) { options["b"] = params[:decide] }
- fail ->(options, **) { options["c"] = true }
+ pass ->(options, **) { options["a"] = false }
+ step ->(options, params: raise, **) { options["b"] = params[:decide] }
+ fail ->(options, **) { options["c"] = true }
end
it { Update.("params" => {decide: true}).inspect("a", "b", "c").must_equal %{<Result:true [false, true, nil] >} }
it { Update.("params" => {decide: false}).inspect("a", "b", "c").must_equal %{<Result:false [false, false, true] >} }
@@ -70,25 +80,7 @@
end
it "allows to inherit" do
Upsert.("params" => {decide: true}).inspect("a", "b", "c", "d", "e").must_equal %{<Result:true [false, true, nil, 1, nil] >}
Unset. ("params" => {decide: true}).inspect("a", "b", "c", "d", "e").must_equal %{<Result:true [false, true, nil, 1, 2] >}
- end
-
- describe "Activity::Interface" do
- class Edit < Trailblazer::Operation
- step :a
- step :b, fast_track: true
- end
-
- it "provides #outputs" do
- Activity::Introspect.Outputs(Edit.outputs).must_equal %{success=> (#<Trailblazer::Operation::Railway::End::Success semantic=:success>, success)
-failure=> (#<Trailblazer::Operation::Railway::End::Failure semantic=:failure>, failure)
-pass_fast=> (#<Trailblazer::Operation::Railway::End::PassFast semantic=:pass_fast>, pass_fast)
-fail_fast=> (#<Trailblazer::Operation::Railway::End::FailFast semantic=:fail_fast>, fail_fast)}
- end
-
- it "is an Interface" do
- Edit.is_a?( Activity::Interface ).must_equal true
- end
end
end