diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 0a1b46f92..35ea1d7a8 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -134,9 +134,7 @@ class Procedure < ActiveRecord::Base exportable_dossiers = dossiers.downloadable headers = exportable_dossiers.any? ? exportable_dossiers.first.export_headers : [] - data = exportable_dossiers.map do |dossier| - dossier.full_data_strings_array - end + data = exportable_dossiers.any? ? exportable_dossiers.map { |d| d.full_data_strings_array } : [[]] { headers: headers, diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index a020e5677..6c4b16ba6 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -261,11 +261,15 @@ describe Procedure do let(:procedure) { create :procedure } subject { procedure.generate_export } - context 'when there are no dossiers' do - it { expect(subject[:data]).to eq([]) } + shared_examples "export is empty" do + it { expect(subject[:data]).to eq([[]]) } it { expect(subject[:headers]).to eq([]) } end + context 'when there are no dossiers' do + it_behaves_like "export is empty" + end + context 'when there are some dossiers' do let!(:dossier){ create(:dossier, procedure: procedure, state: 'initiated') } let!(:dossier2){ create(:dossier, procedure: procedure, state: 'closed') } @@ -277,8 +281,7 @@ describe Procedure do context 'when there is a draft dossier' do let!(:dossier_not_exportable){ create(:dossier, procedure: procedure, state: 'draft') } - it { expect(subject[:data]).to eq([]) } - it { expect(subject[:headers]).to eq([]) } + it_behaves_like "export is empty" end end end