From aa07ca28ec009d7256423513fefb2bb75d61c78f Mon Sep 17 00:00:00 2001 From: Julian Rubisch Date: Mon, 20 Mar 2023 14:15:19 +0100 Subject: [PATCH 1/2] fix: Deep merge url_params in ReflexData --- lib/stimulus_reflex/reflex_data.rb | 2 +- test/reflex_data_test.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 test/reflex_data_test.rb diff --git a/lib/stimulus_reflex/reflex_data.rb b/lib/stimulus_reflex/reflex_data.rb index f8b3af20..acd7e676 100644 --- a/lib/stimulus_reflex/reflex_data.rb +++ b/lib/stimulus_reflex/reflex_data.rb @@ -52,7 +52,7 @@ def form_data end def params - form_params.merge(url_params) + form_params.deep_merge(url_params) end def form_params diff --git a/test/reflex_data_test.rb b/test/reflex_data_test.rb new file mode 100644 index 00000000..d666706d --- /dev/null +++ b/test/reflex_data_test.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +require_relative "test_helper" + +class StimulusReflex::ReflexDataTest < ActiveSupport::TestCase + reflex_data = StimulusReflex::ReflexData.new({ + "params" => { + "user" => {"email" => "test@example.com"} + }, + "url" => "http://example.com/?user[context]=regular" + }) + + test "accessing form_params keeps url_params with the same keys" do + assert_equal "regular", reflex_data.params["user"]["context"] + assert_equal "test@example.com", reflex_data.params["user"]["email"] + end +end From ec757e679d74e2196fff2b7abbf5b04acd0dce56 Mon Sep 17 00:00:00 2001 From: Julian Rubisch Date: Mon, 20 Mar 2023 14:20:46 +0100 Subject: [PATCH 2/2] lint: Standardize --- test/reflex_data_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/reflex_data_test.rb b/test/reflex_data_test.rb index d666706d..7aa93bcb 100644 --- a/test/reflex_data_test.rb +++ b/test/reflex_data_test.rb @@ -6,7 +6,7 @@ class StimulusReflex::ReflexDataTest < ActiveSupport::TestCase reflex_data = StimulusReflex::ReflexData.new({ "params" => { "user" => {"email" => "test@example.com"} - }, + }, "url" => "http://example.com/?user[context]=regular" })