Sha256: 203deaef36377ac038d8501b56b7384dae21ae3d81cce0de057f0ec0732a9228

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

require 'spec_helper'

module Spree
  module Stock
    describe InventoryUnitBuilder, :type => :model do
      subject { InventoryUnitBuilder.new(order) }
      
      context "order shares variant as individual and within bundle" do
        include_context "product is ordered as individual and within a bundle" do
          let(:bundle_item_quantity) { order.find_line_item_by_variant(bundle_variant).quantity }

          describe "#units" do
            it "returns an inventory unit for each part of each quantity for the order's line items" do
              units = subject.units
              expect(units.count).to eq 4
              expect(units[0].line_item.quantity).to eq order.line_items.first.quantity
              expect(units[0].line_item.quantity).to eq bundle_item_quantity

              line_item = order.line_items.first

              expect(units.map(&:variant)).to match_array line_item.parts
            end

            it "builds the inventory units as pending" do
              expect(subject.units.map(&:pending).uniq).to eq [true]
            end

            it "associates the inventory units to the order" do
              expect(subject.units.map(&:order).uniq).to eq [order]
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
solidus_product_bundle-1.0.1 spec/models/spree/stock/inventory_unit_builder_spec.rb
solidus_product_bundle-1.0.0 spec/models/spree/stock/inventory_unit_builder_spec.rb
solidus_product_assembly-1.0.0 spec/models/spree/stock/inventory_unit_builder_spec.rb