diff --git a/spec/system/admin/adjustments_spec.rb b/spec/system/admin/adjustments_spec.rb index a88b0b4f15..688377a285 100644 --- a/spec/system/admin/adjustments_spec.rb +++ b/spec/system/admin/adjustments_spec.rb @@ -23,6 +23,10 @@ describe ' zone: create(:zone_with_member), tax_category: tax_category) } + let!(:tax_category_included) { create(:tax_category, name: 'TVA 20%', is_default: true) } + let!(:default_tax_zone) { create(:zone, default_tax: true) } + let!(:tax_rate2) { create(:tax_rate, name: "TVA 20%", amount: 0.2, zone: default_tax_zone, included_in_price: true, tax_category: tax_category_included, calculator: Calculator::DefaultTax.new ) } + before do order.finalize! create(:check_payment, order: order, amount: order.total) @@ -30,22 +34,84 @@ describe ' visit spree.admin_orders_path end - it "adding taxed adjustments to an order" do - # When I go to the adjustments page for the order - page.find('td.actions a.icon-edit').click - click_link 'Adjustments' + shared_examples "when the enable_localized_number preference" do |adjustment_label, adjustment_amount, tax_category, tax, tax_total| + it "creates the adjustment and calculates taxes" do + # When I go to the adjustments page for the order + page.find('td.actions a.icon-edit').click + click_link 'Adjustments' - # And I create a new adjustment with tax - click_link 'New Adjustment' - fill_in 'adjustment_amount', with: 110 - fill_in 'adjustment_label', with: 'Late fee' - select 'GST', from: 'adjustment_tax_category_id' - click_button 'Continue' + # And I create a new adjustment with tax + click_link 'New Adjustment' + fill_in 'adjustment_amount', with: adjustment_amount + fill_in 'adjustment_label', with: adjustment_label + select tax_category.to_s, from: 'adjustment_tax_category_id' + click_button 'Continue' - # Then I should see the adjustment, with the correct tax - expect(page).to have_selector 'td.label', text: 'Late fee' - expect(page).to have_selector 'td.amount', text: '110.00' - expect(page).to have_selector 'td.tax', text: '10.00' + # Then I should see the adjustment, with tax included in the amount + expect(page).to have_selector 'td.label', text: adjustment_label.to_s + expect(page).to have_selector 'td.amount', text: adjustment_amount.to_s + expect(page).to have_selector 'td.tax-category', text: tax_category.to_s + expect(page).to have_selector 'td.tax', text: tax.to_s + expect(page).to have_selector 'td.total', text: tax_total.to_s + end + end + + context "is active" do + before do + allow(Spree::Config).to receive(:enable_localized_number?).and_return(true) + end + + context "included tax" do + context "adding negative, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Discount", "-2", "TVA 20%", "$0.33", "$-1.67" do + before { pending("#10837") } + end + end + + context "adding positive, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Late fee", "100", "TVA 20%", "$-16.67", "$83.33" do + before { pending("#10837") } + end + end + end + + context "added tax" do + context "adding negative, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Discount", "-2", "GST", "$10.00", "$8.00" do + before { pending("#10837") } + end + end + + context "adding positive, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Late fee", "110", "GST", "$10.00", "$120" + end + end + end + + context "is not active" do + before do + allow(Spree::Config).to receive(:enable_localized_number?).and_return(false) + end + + context "included tax" do + context "adding negative, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Discount", "-2", "TVA 20%", "$0.33", "$-1.67" + end + + context "adding positive, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Late fee", "100", "TVA 20%", "$-16.67", "$83.33" + end + end + + context "added tax" do + context "adding negative, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Discount", "-2", "GST", "$10.00", "$8.00" + end + + context "adding positive, taxed adjustments to an order" do + it_behaves_like "when the enable_localized_number preference", "Late fee", "110", "GST", "$10.00", "$120" + end + end end it "modifying taxed adjustments on an order" do