Sha256: 19b0c8a7f64bad4ba20a4b90752a399f673111f5a7b906161ceddf7d6f0c0e55
Contents?: true
Size: 993 Bytes
Versions: 4
Compression:
Stored size: 993 Bytes
Contents
require "test_helper" require "dry/container" class DryContainerTest < Minitest::Spec Song = Struct.new(:id, :title) class MyContract < Reform::Form property :title validates :title, length: 2..33 end my_container = Dry::Container.new my_container.register("contract.default.class", MyContract) # my_container.namespace("contract") do # register("create") { Array } # end #--- #- dependency injection #- with Dry-container class Create < Trailblazer::Operation step Model( Song, :new ) step Contract::Build() step Contract::Validate() step Contract::Persist( method: :sync ) end #:key end it { Create.({ params: { title: "A" } }, my_container).inspect(:model).must_equal %{<Result:false [#<struct DryContainerTest::Song id=nil, title=nil>] >} } it { Create.({ params: { title: "Anthony's Song" } }, my_container).inspect(:model).must_equal %{<Result:true [#<struct DryContainerTest::Song id=nil, title="Anthony's Song">] >} } end
Version data entries
4 entries across 4 versions & 1 rubygems