Module: Trailblazer::Core::Utils::Assertions
- Defined in:
- lib/trailblazer/core/utils/assertions.rb
Class Method Summary collapse
-
.render_task(proc) ⇒ Object
Use this in #Cct.
Instance Method Summary collapse
-
#assert_call(activity, terminus: :success, seq: "[]", expected_ctx_variables: {}, **ctx_variables) ⇒ Object
‘:seq` is always passed into ctx.
- #assert_call_for(signal, ctx, terminus: :success, seq: "[]", **ctx_variables) ⇒ Object
- #assert_circuit(schema, circuit) ⇒ Object
-
#assert_invoke(activity, terminus: :success, seq: "[]", circuit_options: {}, flow_options: {}, expected_ctx_variables: {}, **ctx_variables) ⇒ Object
Use TaskWrap.invoke to call the activity.
-
#assert_process_for(process, *args) ⇒ Object
(also: #assert_process)
Tests :circuit and :outputs fields so far.
- #Cct(activity) ⇒ Object
Class Method Details
.render_task(proc) ⇒ Object
Use this in #Cct.
64 65 66 |
# File 'lib/trailblazer/core/utils/assertions.rb', line 64 def render_task(proc) Activity::Introspect.render_task(proc) end |
Instance Method Details
#assert_call(activity, terminus: :success, seq: "[]", expected_ctx_variables: {}, **ctx_variables) ⇒ Object
‘:seq` is always passed into ctx.
7 8 9 10 11 12 |
# File 'lib/trailblazer/core/utils/assertions.rb', line 7 def assert_call(activity, terminus: :success, seq: "[]", expected_ctx_variables: {}, **ctx_variables) # Call without taskWrap! signal, (ctx, _) = activity.([{seq: [], **ctx_variables}, = {}]) # simply call the activity with the input you want to assert. assert_call_for(signal, ctx, terminus: terminus, seq: seq, **expected_ctx_variables, **ctx_variables) end |
#assert_call_for(signal, ctx, terminus: :success, seq: "[]", **ctx_variables) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/trailblazer/core/utils/assertions.rb', line 30 def assert_call_for(signal, ctx, terminus: :success, seq: "[]", **ctx_variables) assert_equal signal.to_h[:semantic], terminus, "assert_call expected #{terminus} terminus, not #{signal}. Use assert_call(activity, terminus: #{signal.to_h[:semantic].inspect})" assert_equal ctx.inspect, {seq: "%%%"}.merge(ctx_variables).inspect.sub('"%%%"', seq) return ctx end |
#assert_circuit(schema, circuit) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/trailblazer/core/utils/assertions.rb', line 51 def assert_circuit(schema, circuit) cct = Cct(schema) cct = cct.gsub("#<Trailblazer::Activity::TaskBuilder::Task user_proc=", "<*") assert_equal circuit.to_s, cct end |
#assert_invoke(activity, terminus: :success, seq: "[]", circuit_options: {}, flow_options: {}, expected_ctx_variables: {}, **ctx_variables) ⇒ Object
Use TaskWrap.invoke to call the activity.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/trailblazer/core/utils/assertions.rb', line 15 def assert_invoke(activity, terminus: :success, seq: "[]", circuit_options: {}, flow_options: {}, expected_ctx_variables: {}, **ctx_variables) signal, (ctx, ) = Activity::TaskWrap.invoke( activity, [ {seq: [], **ctx_variables}, , ], ** ) assert_call_for(signal, ctx, terminus: terminus, seq: seq, **ctx_variables, **expected_ctx_variables) # DISCUSS: ordering of variables? return signal, [ctx, ] end |
#assert_process_for(process, *args) ⇒ Object Also known as: assert_process
Tests :circuit and :outputs fields so far.
39 40 41 42 43 44 45 46 47 |
# File 'lib/trailblazer/core/utils/assertions.rb', line 39 def assert_process_for(process, *args) semantics, circuit = args[0..-2], args[-1] assert_equal semantics.sort, process.to_h[:outputs].collect { |output| output[:semantic] }.sort assert_circuit(process, circuit) process end |
#Cct(activity) ⇒ Object
58 59 60 |
# File 'lib/trailblazer/core/utils/assertions.rb', line 58 def Cct(activity) Activity::Introspect::Render.(activity, inspect_task: method(:render_task)) end |