Sha256: 2157358f5e552ec372fe11cecd616d41a98ff34ed6fe98550755711e5b81aae1
Contents?: true
Size: 1.5 KB
Versions: 2
Compression:
Stored size: 1.5 KB
Contents
describe "assignment by custom key" do context "with mixin syntax" do before do class Test::Order extend Dry::Initializer param :user, model: "User", find_by: "name" option :product, model: Item, find_by: :name end end let!(:user) { User.create name: "Dude" } let!(:item) { Item.create name: "The thing" } it "works when records are present" do subject = Test::Order.new("Dude", product: "The thing") expect(subject.user).to eql user expect(subject.product).to eql item end it "works when records are absent" do subject = Test::Order.new("Man", product: "Something strange") expect(subject.user).to be_nil expect(subject.product).to be_nil end end context "with container syntax" do before do class Test::Order include Dry::Initializer.define -> do param :user, model: "User", find_by: "name" option :product, model: Item, find_by: :name end end end let!(:user) { User.create name: "Dude" } let!(:item) { Item.create name: "The thing" } it "works when records are present" do subject = Test::Order.new("Dude", product: "The thing") expect(subject.user).to eql user expect(subject.product).to eql item end it "works when records are absent" do subject = Test::Order.new("Man", product: "Something strange") expect(subject.user).to be_nil expect(subject.product).to be_nil end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-initializer-rails-2.0.0 | spec/dry/initializer/assignment_by_custom_key_spec.rb |
dry-initializer-rails-1.0.0 | spec/dry/initializer/assignment_by_custom_key_spec.rb |