mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-18 19:36:48 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f7059d0c7 | ||
|
|
d715b6b3bb | ||
|
|
5045e26792 | ||
|
|
0442f2da7e | ||
|
|
e7ab839fb3 | ||
|
|
596b318778 | ||
|
|
87c4c5373b | ||
|
|
f70607259a | ||
|
|
ce180caad9 | ||
|
|
01be934caf | ||
|
|
54c6559b97 |
@@ -45,7 +45,7 @@ module Spree
|
||||
def self.valid_localizable_number?(number)
|
||||
return true unless number.is_a?(String) || number.respond_to?(:to_d)
|
||||
# Invalid if only two digits between dividers, or if any non-number characters
|
||||
return false if number.to_s =~ /[.,]\d{2}[.,]/ || number.to_s =~ /[^0-9,.]+/
|
||||
return false if number.to_s =~ /[.,]\d{2}[.,]/ || number.to_s =~ /[^-0-9,.]+/
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
@@ -58,6 +58,12 @@ describe Spree::LocalizedNumber do
|
||||
it "returns true" do
|
||||
expect(described_class.valid_localizable_number?(1599.99)).to eql true
|
||||
end
|
||||
|
||||
context "with a negative number" do
|
||||
it "returns true" do
|
||||
expect(described_class.valid_localizable_number?(-1599.99)).to eql true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "with letters" do
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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,78 @@ 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"
|
||||
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
|
||||
|
||||
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
|
||||
@@ -105,8 +165,8 @@ describe '
|
||||
it "displays adjustments" do
|
||||
click_link 'Adjustments'
|
||||
|
||||
expect(page).to_not have_selector('tr a.icon-edit')
|
||||
expect(page).to_not have_selector('a.icon-plus'), text: 'New Adjustment'
|
||||
expect(page).to_not have_selector 'tr a.icon-edit'
|
||||
expect(page).to_not have_selector 'a.icon-plus', text: 'New Adjustment'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user