Sha256: 494eb872f1df5a58287b21f46e6d789c7225961972fc26fca6c873a9bc507086

Contents?: true

Size: 1.54 KB

Versions: 22

Compression:

Stored size: 1.54 KB

Contents

require 'spec_helper'

describe Spree::ReimbursementTaxCalculator, :type => :model do

  let!(:tax_rate) { nil }

  let(:reimbursement) { create(:reimbursement, return_items_count: 1) }
  let(:return_item) { reimbursement.return_items.first }
  let(:line_item) { return_item.inventory_unit.line_item }

  subject do
    Spree::ReimbursementTaxCalculator.call(reimbursement)
  end

  context 'without taxes' do
    let!(:tax_rate) { nil }

    it 'leaves the return items additional_tax_total and included_tax_total at zero' do
      subject

      expect(return_item.additional_tax_total).to eq 0
      expect(return_item.included_tax_total).to eq 0
    end
  end

  context 'with additional tax' do
    let!(:tax_rate) { create(:tax_rate, name: "Sales Tax", amount: 0.10, included_in_price: false, zone: tax_zone) }
    let(:tax_zone) { create(:zone, default_tax: true) }

    it 'sets additional_tax_total on the return items' do
      subject
      return_item.reload

      expect(return_item.additional_tax_total).to be > 0
      expect(return_item.additional_tax_total).to eq line_item.additional_tax_total
    end
  end

  context 'with included tax' do
    let!(:tax_rate) { create(:tax_rate, name: "VAT Tax", amount: 0.1, included_in_price: true, zone: tax_zone) }
    let(:tax_zone) { create(:zone, default_tax: true) }

    it 'sets included_tax_total on the return items' do
      subject
      return_item.reload

      expect(return_item.included_tax_total).to be < 0
      expect(return_item.included_tax_total).to eq line_item.included_tax_total
    end
  end
end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
solidus_core-1.2.3 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.1.4 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.0.7 spec/models/spree/reimbursement_tax_calculator_spec.rb
spree_core-3.0.10 spec/models/spree/reimbursement_tax_calculator_spec.rb
spree_core-3.0.9 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.0.6 spec/models/spree/reimbursement_tax_calculator_spec.rb
spree_core-3.0.8 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.2.2 spec/models/spree/reimbursement_tax_calculator_spec.rb
spree_core-3.0.7 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.2.1 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.1.3 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.0.5 spec/models/spree/reimbursement_tax_calculator_spec.rb
spree_core-3.0.6.1 spec/models/spree/reimbursement_tax_calculator_spec.rb
spree_core-3.0.6 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.2.0 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.2.0.rc2 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.0.4 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.1.2 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.2.0.rc1 spec/models/spree/reimbursement_tax_calculator_spec.rb
solidus_core-1.2.0.beta1 spec/models/spree/reimbursement_tax_calculator_spec.rb