Sha256: 37cd57abe75e39ad8674f8ce9099459464847aaa446bd286b50e07c1bf9b08df

Contents?: true

Size: 671 Bytes

Versions: 3

Compression:

Stored size: 671 Bytes

Contents

describe "assignment by id" do
  before do
    class Test::Order
      extend Dry::Initializer::Mixin
      extend Dry::Initializer::Rails

      param  :user,    model: "User"
      option :product, model: Item
    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(user.id, product: item.id)

    expect(subject.user).to eql user
    expect(subject.product).to eql item
  end

  it "works when records are absent" do
    subject = Test::Order.new(0, product: 0)

    expect(subject.user).to be_nil
    expect(subject.product).to be_nil
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-initializer-rails-0.0.3 spec/dry/initializer/assignment_by_id_spec.rb
dry-initializer-rails-0.0.2 spec/dry/initializer/assignment_by_id_spec.rb
dry-initializer-rails-0.0.1 spec/dry/initializer/assignment_by_id_spec.rb