Sha256: f95015e730e1f1160aa237a11d66394ed69d376bac5cc82141f6827f02c628c3

Contents?: true

Size: 1.54 KB

Versions: 30

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

module Spree
  RSpec.describe ShippingCalculator, type: :model do
    let(:line_item1) { build(:line_item, price: 10) }
    let(:line_item2) { build(:line_item, price: 20) }

    let(:inventory_unit1) { build(:inventory_unit, line_item: line_item1) }
    let(:inventory_unit2) { build(:inventory_unit, line_item: line_item2) }

    let(:package) do
      build(
        :stock_package,
        contents: [
          Spree::Stock::ContentItem.new(inventory_unit1),
          Spree::Stock::ContentItem.new(inventory_unit1),
          Spree::Stock::ContentItem.new(inventory_unit2)
        ]
      )
    end

    subject { ShippingCalculator.new }

    it 'computes with a shipment' do
      shipment = mock_model(Spree::Shipment)
      expect(subject).to receive(:compute_shipment).with(shipment)
      subject.compute(shipment)
    end

    it 'computes with a package' do
      expect(subject).to receive(:compute_package).with(package)
      subject.compute(package)
    end

    it 'compute_shipment must be overridden' do
      expect {
        subject.compute_shipment(shipment)
      }.to raise_error NameError
    end

    it 'compute_package must be overridden' do
      expect {
        subject.compute_package(package)
      }.to raise_error NotImplementedError
    end

    it 'checks availability for a package' do
      expect(subject.available?(package)).to be true
    end

    it 'calculates totals for content_items' do
      expect(subject.send(:total, package.contents)).to eq 40.00
    end
  end
end

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
solidus_core-2.9.6 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.8.6 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.9.5 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.9.4 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.8.5 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.9.3 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.9.2 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.10.0.beta1 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.9.1 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.9.0 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.9.0.rc.1 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.8.4 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.8.3 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.8.2 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.8.1 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.8.0 spec/models/spree/shipping_calculator_spec.rb
solidus_core_devise_token_auth-2.8.0.alpha.14 spec/models/spree/shipping_calculator_spec.rb
solidus_core_devise_token_auth-2.8.0.alpha.13 spec/models/spree/shipping_calculator_spec.rb
solidus_core_devise_token_auth-2.8.0.alpha.12 spec/models/spree/shipping_calculator_spec.rb
solidus_core_devise_token_auth-2.8.0.alpha.11 spec/models/spree/shipping_calculator_spec.rb