feat(Instructeurs::ProceduresController#show): when an instructeur views list of dossier, caches current loaded page
This commit is contained in:
parent
1b8db6abee
commit
97c50bae0d
3 changed files with 20 additions and 5 deletions
|
@ -122,6 +122,8 @@ module Instructeurs
|
|||
.where(groupe_instructeurs: current_instructeur.groupe_instructeurs.where(procedure_id: @procedure.id))
|
||||
.where(seen_at: nil)
|
||||
.distinct
|
||||
|
||||
cache_show_procedure_state # don't move in callback, inherited by Instructeurs::DossiersController
|
||||
end
|
||||
|
||||
def deleted_dossiers
|
||||
|
@ -392,5 +394,11 @@ module Instructeurs
|
|||
def ordered_procedure_ids_params
|
||||
params.require(:ordered_procedure_ids)
|
||||
end
|
||||
|
||||
def cache_show_procedure_state
|
||||
cache = Cache::ProcedureDossierPagination.new(procedure_presentation:, statut:)
|
||||
|
||||
cache.save_context(ids: @filtered_sorted_paginated_ids, incoming_page: params[:page])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -54,11 +54,6 @@ class Cache::ProcedureDossierPagination
|
|||
read_cache[:incoming_page]
|
||||
end
|
||||
|
||||
# test only
|
||||
def raw
|
||||
read_cache
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def cache_key
|
||||
|
|
|
@ -670,6 +670,18 @@ describe Instructeurs::ProceduresController, type: :controller do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'caches statut and page query param' do
|
||||
let(:statut) { 'tous' }
|
||||
let(:page) { '1' }
|
||||
let!(:dossier) { create(:dossier, :accepte, procedure:) }
|
||||
before { sign_in(instructeur.user) }
|
||||
subject { get :show, params: { procedure_id: procedure.id, statut:, page: } }
|
||||
it 'changes cached value' do
|
||||
expect { subject }.to change { Cache::ProcedureDossierPagination.new(statut:, procedure_presentation: double(procedure:, instructeur:)).send(:read_cache) }
|
||||
.from({}).to(ids: [dossier.id], incoming_page: page)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#deleted_dossiers' do
|
||||
|
|
Loading…
Reference in a new issue