diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb index 19d12b774..0830c0d4d 100644 --- a/app/controllers/case_logs_controller.rb +++ b/app/controllers/case_logs_controller.rb @@ -79,7 +79,7 @@ class CaseLogsController < ApplicationController end def filter - cookies[:case_logs_filters] = { status: params[:status] }.to_json + session[:case_logs_filters] = { status: JSON.parse(params[:status]) }.to_json redirect_back(fallback_location: root_path) end @@ -125,7 +125,7 @@ private def filtered_case_logs user_case_logs = current_user.case_logs - status_filter = JSON.parse(cookies[:case_logs_filters])["status"] if cookies[:case_logs_filters].present? + status_filter = JSON.parse(session[:case_logs_filters])["status"] if session[:case_logs_filters].present? return user_case_logs unless status_filter user_case_logs.filter_by_status(status_filter) diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index aaebeba57..89c48740c 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -1,8 +1,8 @@ module FiltersHelper def filter_selected?(filter) - return true unless cookies[:case_logs_filters] + return true unless session[:case_logs_filters] - selected_filters = JSON.parse(cookies[:case_logs_filters]) + selected_filters = JSON.parse(session[:case_logs_filters]) selected_filters["status"].present? && selected_filters["status"].include?(filter.to_s) end end diff --git a/spec/helpers/filters_helper_spec.rb b/spec/helpers/filters_helper_spec.rb index 1d44e4fa9..d79f8dfcd 100644 --- a/spec/helpers/filters_helper_spec.rb +++ b/spec/helpers/filters_helper_spec.rb @@ -11,7 +11,7 @@ RSpec.describe FiltersHelper do context "when one filter is selected" do before do - cookies[:case_logs_filters] = { "status": "in_progress" }.to_json + session[:case_logs_filters] = { "status": "in_progress" }.to_json end it "returns false for non selected filters" do diff --git a/spec/requests/case_logs_controller_spec.rb b/spec/requests/case_logs_controller_spec.rb index 5b751fdf4..c26c764f4 100644 --- a/spec/requests/case_logs_controller_spec.rb +++ b/spec/requests/case_logs_controller_spec.rb @@ -189,12 +189,12 @@ RSpec.describe CaseLogsController, type: :request do in_progress_case_row_log = "#{in_progress_case_log.id}" completed_case_row_log = "#{completed_case_log.id}" - cookies[:case_logs_filters] = { status: %w[in_progress completed] }.to_json + post "/logs/filter", headers: headers, params: { status: %w[in_progress completed].to_json } get "/logs", headers: headers, params: {} expect(CGI.unescape_html(response.body)).to include(in_progress_case_row_log) expect(CGI.unescape_html(response.body)).to include(completed_case_row_log) - cookies[:case_logs_filters] = { status: %w[in_progress] }.to_json + post "/logs/filter", headers: headers, params: { status: %w[in_progress].to_json } get "/logs", headers: headers, params: {} expect(CGI.unescape_html(response.body)).to include(in_progress_case_row_log) expect(CGI.unescape_html(response.body)).not_to include(completed_case_row_log) @@ -654,23 +654,4 @@ RSpec.describe CaseLogsController, type: :request do end end end - - describe "POST #filter" do - let(:user) { FactoryBot.create(:user) } - let(:params) do - { - "status": ["In progress"], - } - end - - before do - sign_in user - end - - it "sets status filter in the cookies" do - expect(cookies[:case_logs_filters]).to be_nil - post "/logs/filter", headers: headers, params: params.to_json - expect(JSON.parse(cookies[:case_logs_filters])["status"]).to eq(["In progress"]) - end - end end