require 'spec_helper' feature 'user is on description page' do let!(:procedure) { create(:procedure, :with_two_type_de_piece_justificative, :with_type_de_champ, cerfa_flag: true) } let!(:dossier) { create(:dossier, :with_entreprise, procedure: procedure, autorisation_donnees: true) } before do allow(ClamavService).to receive(:safe_file?).and_return(true) visit users_dossier_description_path dossier within('#new_user') do page.find_by_id('user_email').set dossier.user.email page.find_by_id('user_password').set dossier.user.password page.click_on 'Se connecter' end end it { expect(page).to have_css('#description-page') } context 'he fill description fields' do before do find_by_id("champs_#{dossier.champs.first.id}").set 'mon nom' end context 'before submit' do it 'dossier cerfa is empty' do expect(dossier.cerfa).to be_empty end it 'pieces_justificatives are empty' do dossier.pieces_justificatives.each do |piece_justificative| expect(piece_justificative).to be_empty end end end context 'he adds cerfa', vcr: { cassette_name: 'description_page_upload_piece_justificative_adds_cerfa' } do before do attach_file('cerfa_pdf', File.path('spec/support/files/dossierPDF.pdf')) click_on("Soumettre mon dossier") dossier.reload end it 'fills dossier cerfa' do expect(dossier.cerfa).not_to be_empty end end context 'when he adds a piece_justificative and submit form', vcr: { cassette_name: 'description_page_upload_piece_justificative_adds_cerfa_and_submit' } do before do file_input_id = "piece_justificative_#{dossier.types_de_piece_justificative.first.id.to_s}" attach_file(file_input_id, File.path('spec/support/files/dossierPDF.pdf')) click_on('Soumettre mon dossier') dossier.reload end scenario 'fills the given piece_justificative' do expect(dossier.pieces_justificatives.first).not_to be_empty end end end end