diff --git a/app/helpers/authenticated_url_helper.rb b/app/helpers/authenticated_url_helper.rb index f549db099..d33d852e0 100644 --- a/app/helpers/authenticated_url_helper.rb +++ b/app/helpers/authenticated_url_helper.rb @@ -86,7 +86,7 @@ def add_query_parameters(url, parameters) parsed_url = URI.parse url # Add the given parameters to the query string - query_params = CGI.parse(parsed_url.query || '') + query_params = CGI.parse(parsed_url.query || '').with_indifferent_access query_params.merge!(parameters) # Add the query string back to the URL diff --git a/spec/helpers/authenticated_url_helper_spec.rb b/spec/helpers/authenticated_url_helper_spec.rb new file mode 100644 index 000000000..bc1720322 --- /dev/null +++ b/spec/helpers/authenticated_url_helper_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe AuthenticatedUrlHelper do + describe '#add_query_parameters' do + it 'adds the given parameters to the given url' do + expect(described_class.add_query_parameters(root_url, {foo: 'bar'})).to eq(root_url(foo: 'bar')) + end + + it 'does not duplicate existing parameters' do + expect(described_class.add_query_parameters(root_url(foo: 'bar'), {foo: 'baz'})).to eq(root_url(foo: 'baz')) + end + end +end