Sha256: 0e79a0c27e35058c38b53e65e3100922f2026eaeebbac89bdbbcd65604d6d3fe

Contents?: true

Size: 1.49 KB

Versions: 5

Compression:

Stored size: 1.49 KB

Contents

require "test_helper"

class TraceTest < Minitest::Spec
  class B < Trailblazer::Operation
    step ->(options, **) { options[:b] = true }, id: "B.task.b"
    step ->(options, **) { options[:e] = true }, id: "B.task.e"
  end

  class Create < Trailblazer::Operation
    step ->(options, a_return:, **) { options[:a] = a_return }, id: "Create.task.a"
    step({task: B, id: "MyNested"}, B.to_h[:outputs][0] => Track(:success))
    step ->(options, **) { options[:c] = true }, id: "Create.task.c"
    step ->(_options, params:, **) { params.any? }, id: "Create.task.params"
  end
  # raise Create["__task_wraps__"].inspect

  it "allows using low-level Operation::Trace" do
    result = Trailblazer::Operation::Trace.(
      Create,
      { a_return: true, params: {} },
    )

    output = result.wtf

    output.gsub(/0x\w+/, "").gsub(/@.+_test/, "").must_equal %{`-- TraceTest::Create
    |-- Start.default
    |-- Create.task.a
    |-- MyNested
    |   |-- Start.default
    |   |-- B.task.b
    |   |-- B.task.e
    |   `-- End.success
    |-- Create.task.c
    |-- Create.task.params
    `-- End.failure}
  end

  it "Operation::trace" do
    result = Create.trace(params: {x: 1}, a_return: true)
    result.wtf.gsub(/0x\w+/, "").gsub(/@.+_test/, "").must_equal %{`-- TraceTest::Create
    |-- Start.default
    |-- Create.task.a
    |-- MyNested
    |   |-- Start.default
    |   |-- B.task.b
    |   |-- B.task.e
    |   `-- End.success
    |-- Create.task.c
    |-- Create.task.params
    `-- End.success}
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
trailblazer-operation-0.6.6 test/trace_test.rb
trailblazer-operation-0.6.5 test/trace_test.rb
trailblazer-operation-0.6.4 test/trace_test.rb
trailblazer-operation-0.6.3 test/trace_test.rb
trailblazer-operation-0.6.2 test/trace_test.rb