diff --git a/spec/features/new_user/dossier_details_spec.rb b/spec/features/new_user/dossier_details_spec.rb index 5ac0f53a1..61218f8be 100644 --- a/spec/features/new_user/dossier_details_spec.rb +++ b/spec/features/new_user/dossier_details_spec.rb @@ -1,3 +1,5 @@ +require 'features/new_user/dossier_shared_examples.rb' + describe 'Dossier details:' do let(:user) { create(:user) } let(:procedure) { create(:simple_procedure) } @@ -37,41 +39,8 @@ describe 'Dossier details:' do end end - scenario 'the user can see and edit dossier before instruction' do - visit_dossier dossier - click_on 'Demande' - - expect(page).to have_current_path(demande_dossier_path(dossier)) - click_on 'Modifier le dossier' - - expect(page).to have_current_path(modifier_dossier_path(dossier)) - fill_in('texte obligatoire', with: 'Nouveau texte') - click_on 'Enregistrer les modifications du dossier' - - expect(page).to have_current_path(demande_dossier_path(dossier)) - expect(page).to have_content('Nouveau texte') - end - - context 'with messages' do - let!(:commentaire) { create(:commentaire, dossier: dossier, email: 'instructeur@exemple.fr', body: 'Message envoyé à l’usager') } - let(:message_body) { 'Message envoyé à l’instructeur' } - - scenario 'the user can send a message' do - visit_dossier dossier - click_on 'Messagerie' - - expect(page).to have_current_path(messagerie_dossier_path(dossier)) - expect(page).to have_content(commentaire.body) - - fill_in 'commentaire_body', with: message_body - click_on 'Envoyer' - - expect(page).to have_current_path(messagerie_dossier_path(dossier)) - expect(page).to have_content('Message envoyé') - expect(page).to have_content(commentaire.body) - expect(page).to have_content(message_body) - end - end + it_behaves_like 'the user can edit the submitted demande' + it_behaves_like 'the user can send messages to the instructeur' private diff --git a/spec/features/new_user/dossier_shared_examples.rb b/spec/features/new_user/dossier_shared_examples.rb new file mode 100644 index 000000000..7ff2b8c4e --- /dev/null +++ b/spec/features/new_user/dossier_shared_examples.rb @@ -0,0 +1,41 @@ +RSpec.shared_examples 'the user can edit the submitted demande' do + scenario js: true do + visit dossier_path(dossier) + + expect(page).to have_current_path(dossier_path(dossier)) + click_on 'Demande' + + expect(page).to have_current_path(demande_dossier_path(dossier)) + click_on 'Modifier le dossier' + + expect(page).to have_current_path(modifier_dossier_path(dossier)) + fill_in('Texte obligatoire', with: 'Nouveau texte') + click_on 'Enregistrer les modifications du dossier' + + expect(page).to have_current_path(demande_dossier_path(dossier)) + expect(page).to have_content('Nouveau texte') + end +end + +RSpec.shared_examples 'the user can send messages to the instructeur' do + let!(:commentaire) { create(:commentaire, dossier: dossier, email: 'instructeur@exemple.fr', body: 'Message envoyé à l’usager') } + let(:message_body) { 'Message envoyé à l’instructeur' } + + scenario js: true do + visit dossier_path(dossier) + + expect(page).to have_current_path(dossier_path(dossier)) + click_on 'Messagerie' + + expect(page).to have_current_path(messagerie_dossier_path(dossier)) + expect(page).to have_content(commentaire.body) + + fill_in 'commentaire_body', with: message_body + click_on 'Envoyer' + + expect(page).to have_current_path(messagerie_dossier_path(dossier)) + expect(page).to have_content('Message envoyé') + expect(page).to have_content(commentaire.body) + expect(page).to have_content(message_body) + end +end