fix(graphql): return better errors when dossiers cannot change state
This commit is contained in:
parent
46ce685ad0
commit
a778e1083b
3 changed files with 23 additions and 2 deletions
|
@ -28,7 +28,9 @@ module Mutations
|
|||
end
|
||||
|
||||
def authorized?(dossier:, instructeur:, **args)
|
||||
if !dossier.en_instruction?
|
||||
if dossier.en_instruction? && dossier.any_etablissement_as_degraded_mode?
|
||||
return false, { errors: ["Les informations du SIRET du dossier ne sont pas complètes. Veuillez réessayer plus tard."] }
|
||||
elsif !dossier.en_instruction? || !dossier.can_terminer?
|
||||
return false, { errors: ["Le dossier est déjà #{dossier_display_state(dossier, lower: true)}"] }
|
||||
end
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ module Mutations
|
|||
end
|
||||
|
||||
def authorized?(dossier:, instructeur:, **args)
|
||||
if !dossier.termine?
|
||||
if !dossier.can_repasser_en_instruction?
|
||||
return false, { errors: ["Le dossier est déjà #{dossier_display_state(dossier, lower: true)}"] }
|
||||
end
|
||||
dossier_authorized_for?(dossier, instructeur)
|
||||
|
|
|
@ -315,6 +315,25 @@ describe API::V2::GraphqlController do
|
|||
expect(gql_data[:dossierAccepter][:errors].first[:message]).to eq('Le jeton utilisé est configuré seulement en lecture')
|
||||
}
|
||||
end
|
||||
|
||||
context 'when already rejected' do
|
||||
let(:dossier) { create(:dossier, :refuse, :with_individual, procedure:) }
|
||||
|
||||
it {
|
||||
expect(gql_data[:dossierAccepter][:errors].first[:message]).to eq('Le dossier est déjà refusé')
|
||||
}
|
||||
end
|
||||
|
||||
context 'when in degraded mode' do
|
||||
let(:procedure) { create(:procedure, :published, :with_service, administrateurs: [admin]) }
|
||||
let(:dossier) { create(:dossier, :en_instruction, :with_entreprise, procedure:) }
|
||||
|
||||
before { dossier.etablissement.update(adresse: nil) }
|
||||
|
||||
it {
|
||||
expect(gql_data[:dossierAccepter][:errors].first[:message]).to eq('Les informations du SIRET du dossier ne sont pas complètes. Veuillez réessayer plus tard.')
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
context 'dossierRefuser' do
|
||||
|
|
Loading…
Reference in a new issue