Sha256: ddb016fb6200f75b9afeec81140110492dc71a336d23c38c608392df0f07c7b9

Contents?: true

Size: 1.41 KB

Versions: 4

Compression:

Stored size: 1.41 KB

Contents

require 'spec_helper'

describe Spree::LineItem do
  describe "before create" do

    let(:order_store) { create(:store) }
    let(:other_store) { create(:store) }
    let(:order)       { create(:order, store: order_store) }
    let(:variant)     { create(:variant, product: product) }
    let(:line_item)   { build(:line_item, order: order, product: product) }

    subject { line_item.save! }

    context "the order does not have a store" do
      before do
        version = Spree.try(:solidus_gem_version)
        if version && version >= Gem::Version.new("1.3.0.alpha")
          skip "As of 1.3.0 Orders must have a store"
        end
      end

      before(:each) { order.update_attributes(store_id: nil) }
      let(:product) { create(:product, stores: [order_store])}

      it 'does not raise an error' do
        expect{ subject }.to_not raise_error
      end
    end

    context "the line item's product does not belong to the order's store" do
      let(:product) { create(:product, stores: [other_store]) }

      it 'raises the correct error' do
        expect{ subject }.to raise_error(SpreeMultiDomain::LineItemConcerns::ProductDoesNotBelongToStoreError)
      end
    end

    context "the line item's product belongs to the order's store" do
      let(:product) { create(:product, stores: [order_store])}

      it "does not raise an error" do
        expect{ subject }.to_not raise_error
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_multi_domain-1.5.0 spec/models/spree/line_item_spec.rb
solidus_multi_domain-1.4.3 spec/models/spree/line_item_spec.rb
solidus_multi_domain-1.4.2 spec/models/spree/line_item_spec.rb
solidus_multi_domain-1.4.1 spec/models/spree/line_item_spec.rb