mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-11 03:40:20 +00:00
Update TaxRate transition spec
Setting a tax rate to included fails a validation if a default zone doesn't exist, so that's added. Also improved the tested scenarios and some of the details checked on the updated objects.
This commit is contained in:
@@ -7,9 +7,10 @@ module Spree
|
||||
describe TaxRatesController, type: :controller do
|
||||
include AuthenticationHelper
|
||||
|
||||
let!(:default_tax_zone) { create(:zone, default_tax: true) }
|
||||
let!(:tax_rate) {
|
||||
create(:tax_rate, name: "Original Rate", amount: 0.1, included_in_price: false,
|
||||
calculator: build(:calculator))
|
||||
calculator: build(:calculator), zone: default_tax_zone)
|
||||
}
|
||||
|
||||
describe "#update" do
|
||||
@@ -34,7 +35,7 @@ module Spree
|
||||
end
|
||||
end
|
||||
|
||||
context "when the amount or included flag are changed" do
|
||||
context "when the amount is changed" do
|
||||
it "duplicates the record and soft-deletes the duplicate" do
|
||||
expect {
|
||||
spree_put :update, id: tax_rate.id, tax_rate: { name: "Changed Rate", amount: "0.5" }
|
||||
@@ -50,6 +51,29 @@ module Spree
|
||||
updated_rate = Spree::TaxRate.last
|
||||
expect(updated_rate.name).to eq "Changed Rate"
|
||||
expect(updated_rate.amount).to eq 0.5
|
||||
expect(updated_rate.deleted?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context "when included_in_price is changed" do
|
||||
it "duplicates the record and soft-deletes the duplicate" do
|
||||
expect {
|
||||
spree_put :update, id: tax_rate.id, tax_rate: { name: "Changed Rate", included_in_price: "1" }
|
||||
}.to change{ Spree::TaxRate.with_deleted.count }.by(1)
|
||||
|
||||
expect(response).to redirect_to spree.admin_tax_rates_url
|
||||
|
||||
deprecated_rate = tax_rate.reload
|
||||
expect(deprecated_rate.name).to eq "Original Rate"
|
||||
expect(deprecated_rate.amount).to eq 0.1
|
||||
expect(deprecated_rate.included_in_price).to be false
|
||||
expect(deprecated_rate.deleted?).to be true
|
||||
|
||||
updated_rate = Spree::TaxRate.last
|
||||
expect(updated_rate.name).to eq "Changed Rate"
|
||||
expect(updated_rate.amount).to eq 0.1
|
||||
expect(updated_rate.included_in_price).to be true
|
||||
expect(updated_rate.deleted?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user