fix(avis_controller): index do not linked to revoked avis
This commit is contained in:
parent
6ad048955b
commit
dcae06ae84
3 changed files with 11 additions and 3 deletions
|
@ -12,7 +12,7 @@ module Experts
|
|||
DONNES_STATUS = 'donnes'
|
||||
|
||||
def index
|
||||
avis = current_expert.avis.includes(dossier: [groupe_instructeur: :procedure]).not_hidden_by_administration
|
||||
avis = current_expert.avis.not_revoked.includes(dossier: [groupe_instructeur: :procedure]).not_hidden_by_administration
|
||||
@avis_by_procedure = avis.to_a.group_by(&:procedure)
|
||||
end
|
||||
|
||||
|
|
|
@ -53,6 +53,7 @@ class Avis < ApplicationRecord
|
|||
scope :termine_expired, -> { unscope(:joins).where(dossier: Dossier.termine_expired) }
|
||||
scope :en_construction_expired, -> { unscope(:joins).where(dossier: Dossier.en_construction_expired) }
|
||||
scope :not_hidden_by_administration, -> { where(dossiers: { hidden_by_administration_at: nil }) }
|
||||
scope :not_revoked, -> { where(revoked_at: nil) }
|
||||
# The form allows subtmitting avis requests to several emails at once,
|
||||
# hence this virtual attribute.
|
||||
attr_accessor :emails
|
||||
|
|
|
@ -15,6 +15,13 @@ describe Experts::AvisController, type: :controller do
|
|||
let!(:avis_without_answer) { create(:avis, dossier:, claimant:, experts_procedure:) }
|
||||
let!(:avis_with_answer) { create(:avis, dossier:, claimant:, experts_procedure:, answer: 'yop') }
|
||||
|
||||
let!(:revoked_procedure) { create(:procedure, :published, instructeurs: [instructeur]) }
|
||||
let!(:revoked_dossier) { create(:dossier, :en_construction, procedure: revoked_procedure) }
|
||||
let!(:revoked_experts_procedure) { create(:experts_procedure, expert: expert, procedure: revoked_procedure) }
|
||||
let!(:revoked_avis) do
|
||||
create(:avis, dossier: revoked_dossier, claimant:, experts_procedure: revoked_experts_procedure, introduction: 'revoked', revoked_at: Time.zone.now)
|
||||
end
|
||||
|
||||
before do
|
||||
sign_in(expert.user)
|
||||
end
|
||||
|
@ -23,8 +30,8 @@ describe Experts::AvisController, type: :controller do
|
|||
before { get :index }
|
||||
it do
|
||||
expect(response).to have_http_status(:success)
|
||||
expect(assigns(:avis_by_procedure).keys).to include(procedure)
|
||||
expect(assigns(:avis_by_procedure).keys).not_to include(another_procedure)
|
||||
expect(assigns(:avis_by_procedure).keys).to match_array(procedure)
|
||||
expect(assigns(:avis_by_procedure).values.flatten).to match_array([avis_without_answer, avis_with_answer])
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue