Sha256: fdd8e6483b58542be859ed731d4ca23b638b1a597496eba7ff2d605f3ebc52e5

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

require "test_helper"

class DocsMacroTest < Minitest::Spec
  #:simple
  module Macro
    def self.MyPolicy(allowed_role: "admin")
      step = ->(input, options) { options["current_user"].type == allowed_role }

      {task: step, id: "my_policy.#{allowed_role}"} # :before, :replace, etc. work, too.
    end
  end
  #:simple end

  #:simple-op
  class Create < Trailblazer::Operation
    step Macro::MyPolicy( allowed_role: "manager" )
    # ..
  end
  #:simple-op end

=begin
  it do
  #:simple-pipe
    puts Create["pipetree"].inspect(style: :rows) #=>
     0 ========================>operation.new
     1 ====================>my_policy.manager
  #:simple-pipe end
  end
=end

  it { assert_equal Trailblazer::Developer.railway(Create), %{[>my_policy.manager]} }
end


class MacroAssignVariableTest < Minitest::Spec
  it do
    my_exec_context = Class.new do
      def my_dataset(ctx, my_array:, **)
        my_array.reverse
      end
    end.new

    dataset_task = Trailblazer::Macro.task_adapter_for_decider(:my_dataset, variable_name: :dataset)

    signal, (ctx, _) = dataset_task.([{my_array: [1,2]}, {}], exec_context: my_exec_context)

    assert_equal signal, Trailblazer::Activity::Right
    assert_equal ctx.inspect, %{{:my_array=>[1, 2], :dataset=>[2, 1]}}
  end
end

# injectable option
# nested pipe
# using macros in macros

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
trailblazer-macro-2.1.16 test/docs/macro_test.rb