Sha256: 4c7cc0183981167f298e0d432df3af82478d5ab2ec0a88419840268504bce2c0

Contents?: true

Size: 617 Bytes

Versions: 6

Compression:

Stored size: 617 Bytes

Contents

require "dry/transaction/operation"

RSpec.describe Dry::Transaction::Operation do
  subject(:operation) {
    Class.new do
      include Dry::Transaction::Operation

      def call(input)
        Success(input)
      end
    end.new
  }

  it "mixes in the Result monad constructors" do
    expect(operation.("hello")).to be_success
  end

  it "supports pattern matching when called with a block" do
    result = operation.("hello") do |m|
      m.success do |v|
        "Success: #{v}"
      end
      m.failure do |v|
        "Failure: #{v}"
      end
    end

    expect(result).to eq "Success: hello"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dry-transaction-0.13.0 spec/integration/operation_spec.rb
dry-transaction-0.12.1 spec/integration/operation_spec.rb
dry-transaction-0.12.0 spec/integration/operation_spec.rb
dry-transaction-0.11.2 spec/integration/operation_spec.rb
dry-transaction-0.11.1 spec/integration/operation_spec.rb
dry-transaction-0.11.0 spec/integration/operation_spec.rb