demarches-normaliennes/spec/controllers/instructeurs/archives_controller_spec.rb
Christophe Robillard 54d91335f2 remove the ability to download an 'everything' archive
there are sometimes an error that happen when building an everything
archive. The error explanation is not understood at the moment.
To deliver the archive feature quickly, we remove the 'everything' archive for
the moment
2021-07-05 11:05:07 +02:00

55 lines
1.9 KiB
Ruby

describe Instructeurs::ArchivesController, type: :controller do
let(:procedure1) { create(:procedure, :published, groupe_instructeurs: [gi1]) }
let(:procedure2) { create(:procedure, :published, groupe_instructeurs: [gi2]) }
let!(:instructeur) { create(:instructeur, groupe_instructeurs: [gi1, gi2]) }
let!(:archive1) { create(:archive, :generated, groupe_instructeurs: [gi1]) }
let!(:archive2) { create(:archive, :generated, groupe_instructeurs: [gi2]) }
let(:gi1) { create(:groupe_instructeur) }
let(:gi2) { create(:groupe_instructeur) }
before do
sign_in(instructeur.user)
Flipper.enable(:archive_zip_globale, procedure1)
end
after { Timecop.return }
describe '#index' do
before do
create_dossier_for_month(procedure1, 2021, 3)
create_dossier_for_month(procedure1, 2021, 3)
create_dossier_for_month(procedure1, 2021, 2)
Timecop.freeze(Time.zone.local(2021, 3, 5))
end
it 'displays archives' do
get :index, { params: { procedure_id: procedure1.id } }
expect(assigns(:archives)).to eq([archive1])
end
end
describe '#create' do
let(:month) { '21-03' }
let(:date_month) { Date.strptime(month, "%Y-%m") }
let(:archive) { create(:archive) }
let(:subject) do
post :create, {
params: { procedure_id: procedure1.id, type: 'monthly', month: month }
}
end
it "performs archive creation job" do
allow_any_instance_of(ProcedureArchiveService).to receive(:create_pending_archive).and_return(archive)
expect { subject }.to have_enqueued_job(ArchiveCreationJob).with(procedure1, archive, instructeur)
expect(flash.notice).to include("Votre demande a été prise en compte")
end
end
private
def create_dossier_for_month(procedure, year, month)
Timecop.freeze(Time.zone.local(year, month, 5))
create(:dossier, :accepte, :with_attestation, procedure: procedure)
end
end