tell when query params have been stored
This commit is contained in:
parent
73fa572236
commit
e212055ef8
2 changed files with 28 additions and 3 deletions
|
@ -1,17 +1,25 @@
|
|||
module QueryParamsStoreConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
helper_method :stored_query_params?
|
||||
end
|
||||
|
||||
def store_query_params
|
||||
# Don't override already stored params, because we could do goings and comings with authentication, and
|
||||
# lost previously stored params
|
||||
return if session[:stored_params].present? || request.query_parameters.empty?
|
||||
return if stored_query_params? || request.query_parameters.empty?
|
||||
|
||||
session[:stored_params] = request.query_parameters.to_json
|
||||
end
|
||||
|
||||
def retrieve_and_delete_stored_query_params
|
||||
return {} if session[:stored_params].blank?
|
||||
return {} unless stored_query_params?
|
||||
|
||||
JSON.parse(session.delete(:stored_params))
|
||||
end
|
||||
|
||||
def stored_query_params?
|
||||
session[:stored_params].present?
|
||||
end
|
||||
end
|
||||
|
|
|
@ -15,7 +15,7 @@ RSpec.describe QueryParamsStoreConcern, type: :controller do
|
|||
let(:params) { { param1: "param1" } }
|
||||
|
||||
it "does nothing" do
|
||||
session[:stored_params] = "there is alread something in there"
|
||||
session[:stored_params] = "there is already something in there"
|
||||
|
||||
expect { store_query_params }.not_to change { session[:stored_params] }
|
||||
end
|
||||
|
@ -63,4 +63,21 @@ RSpec.describe QueryParamsStoreConcern, type: :controller do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#stored_query_params?' do
|
||||
subject(:stored_query_params?) { controller.stored_query_params? }
|
||||
|
||||
before { controller.store_query_params }
|
||||
context 'when query params have been stored' do
|
||||
let(:params) { { param1: "param1", param2: "param2" } }
|
||||
|
||||
it { is_expected.to eq(true) }
|
||||
end
|
||||
|
||||
context 'when query params have not been stored' do
|
||||
let(:params) { {} }
|
||||
|
||||
it { is_expected.to eq(false) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue