From cb7a4b67ce5894c66f801803e8bc4a75374d5d6c Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 9 Jan 2026 14:33:39 +1100 Subject: [PATCH] Replace custom lookup with default Rails feature Rails renders an error when you try to supply an invalid value. Our code is safe without an allow-list and the UX doesn't allow you to select an invalid value. --- .../spree/admin/payment_methods_controller.rb | 2 +- .../spree/admin/payment_methods_controller_spec.rb | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/app/controllers/spree/admin/payment_methods_controller.rb b/app/controllers/spree/admin/payment_methods_controller.rb index 069b0ad1cc..08c0e600b6 100644 --- a/app/controllers/spree/admin/payment_methods_controller.rb +++ b/app/controllers/spree/admin/payment_methods_controller.rb @@ -95,7 +95,7 @@ module Spree @payment_method = PaymentMethod.find(params[:pm_id]) end else - @payment_method = PAYMENT_METHODS.fetch(params[:provider_type], PaymentMethod).new + @payment_method = PaymentMethod.new(type: params[:provider_type]) end render partial: 'provider_settings' diff --git a/spec/controllers/spree/admin/payment_methods_controller_spec.rb b/spec/controllers/spree/admin/payment_methods_controller_spec.rb index 7827705283..398389bf24 100644 --- a/spec/controllers/spree/admin/payment_methods_controller_spec.rb +++ b/spec/controllers/spree/admin/payment_methods_controller_spec.rb @@ -296,17 +296,6 @@ RSpec.describe Spree::Admin::PaymentMethodsController do expect(assigns(:payment_method)).to be_a_new Spree::Gateway::PayPalExpress expect(response).to render_template partial: '_provider_settings' end - - context "with a non valid payment method" do - it "renders provider settings with a new generic payment method" do - spree_get :show_provider_preferences, - pm_id: "", - provider_type: "Spree::Gateway::Hacked" - - expect(assigns(:payment_method)).to be_a_new Spree::PaymentMethod - expect(response).to render_template partial: '_provider_settings' - end - end end end end