diff --git a/app/graphql/extensions/attachment.rb b/app/graphql/extensions/attachment.rb index d5ebde7c5..c0612d8fb 100644 --- a/app/graphql/extensions/attachment.rb +++ b/app/graphql/extensions/attachment.rb @@ -45,7 +45,7 @@ module Extensions else attachment = after_resolve_attachment(value) if options[:as] == :multiple - [attachment] + [attachment].compact else attachment end diff --git a/spec/graphql/dossier_spec.rb b/spec/graphql/dossier_spec.rb index fac5267eb..a6dc67f09 100644 --- a/spec/graphql/dossier_spec.rb +++ b/spec/graphql/dossier_spec.rb @@ -210,6 +210,18 @@ RSpec.describe Types::DossierType, type: :graphql do } end + describe 'dossier with message with no attachments' do + let(:dossier) { create(:dossier, :en_construction) } + let(:query) { DOSSIER_WITH_MESSAGE_QUERY } + let(:variables) { { number: dossier.id } } + + before { create(:commentaire, dossier: dossier) } + + it { + expect(data[:dossier][:messages]).not_to be_nil + } + end + DOSSIER_QUERY = <<-GRAPHQL query($number: Int!) { dossier(number: $number) { @@ -351,4 +363,17 @@ RSpec.describe Types::DossierType, type: :graphql do } } GRAPHQL + + DOSSIER_WITH_MESSAGE_QUERY = <<-GRAPHQL + query($number: Int!) { + dossier(number: $number) { + messages { + body + attachments { + filename + } + } + } + } + GRAPHQL end