Sha256: 4925b5ccd6308ea1e3600e379f47509c50fa71ac9a77d9ca883f24e4ef3625f4

Contents?: true

Size: 894 Bytes

Versions: 3

Compression:

Stored size: 894 Bytes

Contents

# require "dry-monads"
# require "dry-auto_inject"

# RSpec.describe "Using dry-auto_inject" do
#   let(:transaction) {
#     Class.new do
#       include Dry::Transaction(container: Test::Container)
#       include Test::Inject[:extract_email]

#       step :symbolize

#       def call(input)
#         super(input).bind(extract_email)
#       end
#     end.new
#   }

#   before do
#     module Test
#       Container = {
#         symbolize: -> input { Dry::Monads::Right(name: input["name"], email: input["email"]) },
#         extract_email: -> input { Dry::Monads::Right(email: input[:email]) },
#       }

#       Inject = Dry::AutoInject(container: Container)
#     end
#   end

#   it "support auto-injection of dependencies alongside step operations" do
#     expect(transaction.("name" => "Jane", "email" => "jane@example.com").value).to eq(email: "jane@example.com")
#   end
# end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-transaction-0.13.0 spec/integration/auto_injection_spec.rb
dry-transaction-0.12.1 spec/integration/auto_injection_spec.rb
dry-transaction-0.12.0 spec/integration/auto_injection_spec.rb