From 7fa55fe5c6160dc7f88f571716641fc736108872 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Fri, 18 Nov 2016 12:36:33 +1100 Subject: [PATCH] Adding spec to ensure that invalid changes to standing orders are not propagated to associated orders --- spec/forms/standing_order_form_spec.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/spec/forms/standing_order_form_spec.rb b/spec/forms/standing_order_form_spec.rb index b820afaf21..b0aa6446fd 100644 --- a/spec/forms/standing_order_form_spec.rb +++ b/spec/forms/standing_order_form_spec.rb @@ -88,6 +88,26 @@ module OpenFoodNetwork end end + describe "making a change that causes an error" do + let(:standing_order) { create(:standing_order_with_items) } + let(:shipping_method) { standing_order.shipping_method } + let(:invalid_shipping_method) { create(:shipping_method, distributors: [create(:enterprise)]) } + let(:order) { standing_order.orders.first } + let(:params) { { shipping_method_id: invalid_shipping_method.id } } + let(:form) { StandingOrderForm.new(standing_order, params) } + + before do + form.send(:initialise_orders!) + form.save + end + + it "does not update standing_order or associated orders" do + expect(order.shipping_method).to eq shipping_method + expect(order.shipments.first.shipping_method).to eq shipping_method + expect(form.json_errors.keys).to eq [:shipping_method] + end + end + describe "changing the shipping method" do let(:standing_order) { create(:standing_order_with_items) } let(:shipping_method) { standing_order.shipping_method }