mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-01 02:03:22 +00:00
Add more specs to ship method controller
This commit is contained in:
@@ -4,6 +4,7 @@ describe Spree::Admin::ShippingMethodsController, type: :controller do
|
||||
include AuthenticationWorkflow
|
||||
|
||||
describe "#update" do
|
||||
let(:shipping_method) { create(:shipping_method) }
|
||||
let(:params) {
|
||||
{
|
||||
id: shipping_method.id,
|
||||
@@ -15,19 +16,63 @@ describe Spree::Admin::ShippingMethodsController, type: :controller do
|
||||
}
|
||||
}
|
||||
|
||||
describe "flat rate calculator details" do
|
||||
let(:shipping_method) { create(:shipping_method_with, :flat_rate) }
|
||||
before { login_as_admin }
|
||||
|
||||
it "updates preferred_amount and preferred_currency" do
|
||||
login_as_admin
|
||||
params[:shipping_method][:calculator_attributes][:preferred_amount] = 123
|
||||
params[:shipping_method][:calculator_attributes][:preferred_currency] = "EUR"
|
||||
it "updates preferred_amount and preferred_currency of a FlatRate calculator" do
|
||||
shipping_method.calculator = create(:calculator_flat_rate, calculable: shipping_method)
|
||||
params[:shipping_method][:calculator_attributes][:preferred_amount] = 123
|
||||
params[:shipping_method][:calculator_attributes][:preferred_currency] = "EUR"
|
||||
|
||||
spree_post :update, params
|
||||
spree_post :update, params
|
||||
|
||||
expect(shipping_method.reload.calculator.preferred_amount).to eq 123
|
||||
expect(shipping_method.reload.calculator.preferred_currency).to eq "EUR"
|
||||
end
|
||||
expect(shipping_method.reload.calculator.preferred_amount).to eq 123
|
||||
expect(shipping_method.reload.calculator.preferred_currency).to eq "EUR"
|
||||
end
|
||||
|
||||
it "updates preferred_per_kg of a Weight calculator" do
|
||||
shipping_method.calculator = create(:weight_calculator, calculable: shipping_method)
|
||||
params[:shipping_method][:calculator_attributes][:preferred_per_kg] = 10
|
||||
|
||||
spree_post :update, params
|
||||
|
||||
expect(shipping_method.reload.calculator.preferred_per_kg).to eq 10
|
||||
end
|
||||
|
||||
it "updates preferred_flat_percent of a FlatPercentPerItem calculator" do
|
||||
shipping_method.calculator = Calculator::FlatPercentPerItem.new(preferred_flat_percent: 20,
|
||||
|
||||
calculable: shipping_method)
|
||||
params[:shipping_method][:calculator_attributes][:preferred_flat_percent] = 30
|
||||
|
||||
spree_post :update, params
|
||||
|
||||
expect(shipping_method.reload.calculator.preferred_flat_percent).to eq 30
|
||||
end
|
||||
|
||||
it "updates details of a FlexiRate calculator" do
|
||||
shipping_method.calculator = Spree::Calculator::FlexiRate.new(calculable: shipping_method)
|
||||
params[:shipping_method][:calculator_attributes][:preferred_first_item] = 10
|
||||
params[:shipping_method][:calculator_attributes][:preferred_additional_item] = 20
|
||||
params[:shipping_method][:calculator_attributes][:preferred_max_items] = 30
|
||||
|
||||
spree_post :update, params
|
||||
|
||||
expect(shipping_method.reload.calculator.preferred_first_item).to eq 10
|
||||
expect(shipping_method.reload.calculator.preferred_additional_item).to eq 20
|
||||
expect(shipping_method.reload.calculator.preferred_max_items).to eq 30
|
||||
end
|
||||
|
||||
it "updates details of a PriceSack calculator" do
|
||||
shipping_method.calculator = Spree::Calculator::PriceSack.new(calculable: shipping_method)
|
||||
params[:shipping_method][:calculator_attributes][:preferred_minimal_amount] = 10
|
||||
params[:shipping_method][:calculator_attributes][:preferred_normal_amount] = 20
|
||||
params[:shipping_method][:calculator_attributes][:preferred_discount_amount] = 30
|
||||
|
||||
spree_post :update, params
|
||||
|
||||
expect(shipping_method.reload.calculator.preferred_minimal_amount).to eq 10
|
||||
expect(shipping_method.reload.calculator.preferred_normal_amount).to eq 20
|
||||
expect(shipping_method.reload.calculator.preferred_discount_amount).to eq 30
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user