module Trailblazer::Activity::Testing

Public Class Methods

def_steps(*names) click to toggle source

Creates a module with one step method for each name.

@example

extend T.def_steps(:create, :save)
# File lib/trailblazer/activity/testing.rb, line 10
def self.def_steps(*names)
  Module.new do
    module_function
    names.each do |name|
      define_method(name) do | ctx, ** |
        ctx[:seq] << name
        ctx.key?(name) ? ctx[name] : true
      end
    end
  end
end
def_task(name) click to toggle source

Creates a method instance with a task interface.

@example

task task: T.def_task(:create)
# File lib/trailblazer/activity/testing.rb, line 26
def self.def_task(name)
  Module.new do
    define_singleton_method(name) do | (ctx, flow_options), ** |
      ctx[:seq] << name
      signal = ctx.key?(name) ? ctx[name] : Activity::Right

      return signal, [ctx, flow_options]
    end
  end.method(name)
end
def_tasks(*names) click to toggle source
# File lib/trailblazer/activity/testing.rb, line 37
def self.def_tasks(*names)
  Module.new do
    module_function
    names.each do |name|
      define_method(name) do | (ctx, flow_options), ** |
        ctx[:seq] << name
        signal = ctx.key?(name) ? ctx[name] : Activity::Right

        return signal, [ctx, flow_options]
      end
    end
  end
end
render_task(proc) click to toggle source

Use this in {#Cct}.

# File lib/trailblazer/activity/testing.rb, line 153
def self.render_task(proc)
  Activity::Introspect.render_task(proc)
end