Sha256: 11eac3b206268a54ec8e60b916b49bfa9ea56149de59f720c6da0e959ea68a97

Contents?: true

Size: 1.72 KB

Versions: 16

Compression:

Stored size: 1.72 KB

Contents

require 'spec_helper'

module Spree
  module Stock
    module Splitter
      describe ShippingCategory, :type => :model do

        let(:order) { create(:order_with_line_items, line_items_count: 1) }
        let(:line_item) { order.line_items.first }
        let(:variant1) { build(:variant) }
        let(:variant2) { build(:variant) }
        let(:shipping_category_1) { create(:shipping_category, name: 'A') }
        let(:shipping_category_2) { create(:shipping_category, name: 'B') }

        def inventory_unit1
          build(:inventory_unit, variant: variant1, order: order, line_item: line_item).tap do |inventory_unit|
            inventory_unit.variant.product.shipping_category = shipping_category_1
          end
        end

        def inventory_unit2
          build(:inventory_unit, variant: variant2, order: order, line_item: line_item).tap do |inventory_unit|
            inventory_unit.variant.product.shipping_category = shipping_category_2
          end
        end

        let(:packer) { build(:stock_packer) }

        subject { ShippingCategory.new(packer) }

        it 'splits each package by shipping category' do
          package1 = Package.new(packer.stock_location)
          4.times { package1.add inventory_unit1 }
          8.times { package1.add inventory_unit2 }

          package2 = Package.new(packer.stock_location)
          6.times { package2.add inventory_unit1 }
          9.times { package2.add inventory_unit2, :backordered }

          packages = subject.split([package1, package2])
          expect(packages[0].quantity).to eq 4
          expect(packages[1].quantity).to eq 8
          expect(packages[2].quantity).to eq 6
          expect(packages[3].quantity).to eq 9
        end

      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
solidus_core-1.2.3 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.1.4 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.0.7 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.0.6 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.2.2 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.2.1 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.1.3 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.0.5 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.2.0 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.2.0.rc2 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.0.4 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.1.2 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.2.0.rc1 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.2.0.beta1 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.0.3 spec/models/spree/stock/splitter/shipping_category_spec.rb
solidus_core-1.1.1 spec/models/spree/stock/splitter/shipping_category_spec.rb