From 091bfc710f6d6041c176534e028e3817e1d76de5 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 12 Jul 2021 09:22:43 +0100 Subject: [PATCH] Add test for applying multiple tax rates per tax zone --- .../admin/adjustments_controller_spec.rb | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/spec/controllers/spree/admin/adjustments_controller_spec.rb b/spec/controllers/spree/admin/adjustments_controller_spec.rb index 1e6fe5f8a5..7c832fd835 100644 --- a/spec/controllers/spree/admin/adjustments_controller_spec.rb +++ b/spec/controllers/spree/admin/adjustments_controller_spec.rb @@ -94,6 +94,42 @@ module Spree expect(order.included_tax_total).to eq 10 end end + + context "when the tax category has multiple rates for the same tax zone" do + let(:tax_category) { create(:tax_category) } + let!(:tax_rate1) { + create(:tax_rate, amount: 0.1, zone: zone, included_in_price: false, + tax_category: tax_category ) + } + let!(:tax_rate2) { + create(:tax_rate, amount: 0.2, zone: zone, included_in_price: false, + tax_category: tax_category ) + } + let(:tax_category_param) { tax_category.id.to_s } + let(:params) { + { + order_id: order.number, + adjustment: { + label: 'Testing multiple rates', amount: '100', tax_category_id: tax_category_param + } + } + } + + it "applies both rates" do + spree_post :create, params + expect(response).to redirect_to spree.admin_order_adjustments_path(order) + + new_adjustment = Adjustment.admin.last + + expect(new_adjustment.amount).to eq(100) + expect(new_adjustment.tax_category).to eq tax_category + expect(new_adjustment.order_id).to eq(order.id) + expect(new_adjustment.adjustments.tax.count).to eq 2 + + expect(order.reload.total).to eq 130 + expect(order.additional_tax_total).to eq 30 + end + end end describe "updating an adjustment" do