Sha256: f4f5594e194dc4217cbde10da4ef321d88311bda4e4ecf7cb2c63a04569103c1

Contents?: true

Size: 1.2 KB

Versions: 5

Compression:

Stored size: 1.2 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 { described_class.new }

    it 'computes with a package' do
      expect(subject).to receive(:compute_package).with(package)
      subject.compute(package)
    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

5 entries across 5 versions & 1 rubygems

Version Path
solidus_core-2.10.5 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.10.3 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.10.2 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.10.1 spec/models/spree/shipping_calculator_spec.rb
solidus_core-2.10.0 spec/models/spree/shipping_calculator_spec.rb