Sha256: 6ea96a32f672c243409e5526e185b76a2fa28265b855524944f07bc8f02b23e7

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

module Spree
  module Stock
    describe InventoryUnitBuilder, type: :model do
      subject { described_class.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
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_product_assembly-1.4.0 spec/models/spree/stock/inventory_unit_builder_spec.rb
solidus_product_assembly-1.3.0 spec/models/spree/stock/inventory_unit_builder_spec.rb
solidus_product_assembly-1.2.0 spec/models/spree/stock/inventory_unit_builder_spec.rb
solidus_product_assembly-1.1.0 spec/models/spree/stock/inventory_unit_builder_spec.rb