From a68b5eaf2233b95a251378c8ec9148a2528d7642 Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Wed, 17 Apr 2019 15:31:19 +0100 Subject: [PATCH] Fix bug in Variant Overrides controller. It was validating authorization for variant overrides of deleted variants --- .../admin/variant_overrides_controller.rb | 1 + .../admin/variant_overrides_controller_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/controllers/admin/variant_overrides_controller.rb b/app/controllers/admin/variant_overrides_controller.rb index f7145e84c7..a989d2e72b 100644 --- a/app/controllers/admin/variant_overrides_controller.rb +++ b/app/controllers/admin/variant_overrides_controller.rb @@ -77,6 +77,7 @@ module Admin def collection @variant_overrides = VariantOverride.for_hubs(params[:hub_id] || @hubs) + @variant_overrides.select { |vo| vo.variant.present? } end def collection_actions diff --git a/spec/controllers/admin/variant_overrides_controller_spec.rb b/spec/controllers/admin/variant_overrides_controller_spec.rb index 3bd2632979..b62da38678 100644 --- a/spec/controllers/admin/variant_overrides_controller_spec.rb +++ b/spec/controllers/admin/variant_overrides_controller_spec.rb @@ -68,6 +68,21 @@ describe Admin::VariantOverridesController, type: :controller do expect(VariantOverride.find_by_id(variant_override.id)).to be_nil end end + + context "and there is a variant override for a deleted variant" do + let(:deleted_variant) { create(:variant) } + let!(:variant_override_of_deleted_variant) { create(:variant_override, hub: hub, variant: deleted_variant) } + + it "allows to update other variant overrides" do + deleted_variant.update_attribute :deleted_at, Time.zone.now + + spree_put :bulk_update, format: format, variant_overrides: variant_override_params + + expect(response).to_not redirect_to spree.unauthorized_path + variant_override.reload + expect(variant_override.price).to eq 123.45 + end + end end end end