diff --git a/spec/features/admin/procedure_creation_spec.rb b/spec/features/admin/procedure_creation_spec.rb index a8d06e8af..8081ca485 100644 --- a/spec/features/admin/procedure_creation_spec.rb +++ b/spec/features/admin/procedure_creation_spec.rb @@ -46,7 +46,6 @@ feature 'As an administrateur I wanna create a new procedure', js: true do end context 'Editing a new procedure' do - before 'Create procedure' do page.find_by_id('new-procedure').click fill_in 'procedure_libelle', with: 'libelle de la procedure' diff --git a/spec/features/backoffice/index_show_procedure_spec.rb b/spec/features/backoffice/index_show_procedure_spec.rb index b59fdbe46..4056bfb01 100644 --- a/spec/features/backoffice/index_show_procedure_spec.rb +++ b/spec/features/backoffice/index_show_procedure_spec.rb @@ -1,7 +1,6 @@ require 'spec_helper' -feature 'As an Accompagnateur I can navigate and use each functionnality around procedures and their dossiers', js: true do - +feature 'As an Accompagnateur I can navigate and use each functionnality around procedures and their dossiers' do let(:user) { create(:user) } let(:gestionnaire) { create(:gestionnaire) } let(:procedure_1) { create(:procedure, :with_type_de_champ, libelle: 'procedure 1') } @@ -23,46 +22,46 @@ feature 'As an Accompagnateur I can navigate and use each functionnality around context 'On index' do scenario 'Switching between procedures' do - page.all('#procedure_list a').first.trigger('click') + page.all('#procedure_list a').first.click expect(page).to have_current_path(backoffice_dossiers_procedure_path(id: procedure_1.id.to_s), only_path: true) expect(page.find('#all_dossiers .count').text).to eq('30 dossiers') - page.all('#procedure_list a').last.trigger('click') + page.all('#procedure_list a').last.click expect(page).to have_current_path(backoffice_dossiers_procedure_path(id: procedure_2.id.to_s), only_path: true) expect(page.find('#all_dossiers .count').text).to eq('22 dossiers') end - scenario 'Searching with search bar' do + scenario 'Searching with search bar', js: true do page.find_by_id('search_area').trigger('click') - fill_in 'q', with: '15' - page.find_by_id('search_button').trigger('click') - page.find_by_id('tr_dossier_15').trigger('click') - expect(page).to have_current_path("/backoffice/dossiers/15") + fill_in 'q', with: (procedure_1.dossiers.first.id + 14) + page.find_by_id('search_button').click + page.find_by_id("tr_dossier_#{(procedure_1.dossiers.first.id + 14)}").click + expect(page).to have_current_path("/backoffice/dossiers/#{(procedure_1.dossiers.first.id + 14)}") end scenario 'Following dossier' do - page.all('#procedure_list a').first.trigger('click') + page.all('#procedure_list a').first.click expect(page.all('#follow_dossiers .smart-listing')[0]['data-item-count']).to eq ("0") - page.find_by_id('all_dossiers').trigger('click') + page.find_by_id('all_dossiers').click expect(page.all('#dossiers_list a').first.text).to eq('Suivre') - page.all('#dossiers_list a').first.trigger('click') + page.all('#dossiers_list a').first.click expect(page.all('#follow_dossiers .smart-listing')[0]['data-item-count']).to eq ("1") end - scenario 'Using sort and pagination' do - visit "/backoffice/dossiers/procedure/1?all_state_dossiers_smart_listing[sort][id]=asc" + scenario 'Using sort and pagination', js: true do + visit "/backoffice/dossiers/procedure/#{procedure_1.id}?all_state_dossiers_smart_listing[sort][id]=asc" wait_for_ajax - expect(page.all("#all_state_dossiers .dossier-row")[0]['id']).to eq('tr_dossier_1') - visit "/backoffice/dossiers/procedure/1?all_state_dossiers_smart_listing[sort][id]=desc" + expect(page.all("#all_state_dossiers .dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id}") + visit "/backoffice/dossiers/procedure/#{procedure_1.id}?all_state_dossiers_smart_listing[sort][id]=desc" wait_for_ajax - expect(page.all(".dossier-row")[0]['id']).to eq('tr_dossier_30') + expect(page.all(".dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.last.id}") page.find('#all_state_dossiers .next_page a').trigger('click') wait_for_ajax page.find('#all_state_dossiers .next_page a').trigger('click') wait_for_ajax - expect(page.all(".dossier-row")[0]['id']).to eq('tr_dossier_10') + expect(page.all(".dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id + 9}") page.find('#all_state_dossiers .prev a').trigger('click') wait_for_ajax - expect(page.all(".dossier-row")[0]['id']).to eq('tr_dossier_20') + expect(page.all(".dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id + 19}") end scenario 'Using filter' do @@ -76,23 +75,25 @@ feature 'As an Accompagnateur I can navigate and use each functionnality around end context 'On show' do - scenario 'Following dossier' do expect(page.all('#follow_dossiers .count').first.text).to eq('0 dossiers') - visit "/backoffice/dossiers/procedure/1?all_state_dossiers_smart_listing[sort][id]=asc" - page.find_by_id("suivre_dossier_1").trigger('click') - visit "backoffice/dossiers/4" - page.find_by_id("suivre_dossier_4").trigger('click') - visit "/backoffice/dossiers/procedure/1" + + visit "/backoffice/dossiers/procedure/#{procedure_1.id}?all_state_dossiers_smart_listing[sort][id]=asc" + page.find_by_id("suivre_dossier_#{procedure_1.dossiers.first.id}").click + + visit "/backoffice/dossiers/#{procedure_1.dossiers.second.id}" + page.find_by_id("suivre_dossier_#{procedure_1.dossiers.second.id}").click + + visit "/backoffice/dossiers/procedure/#{procedure_1.id}" expect(page.all('#follow_dossiers .count').first.text).to eq('2 dossiers') end - scenario 'Adding message' do - page.find_by_id('tr_dossier_4').trigger('click') - expect(page).to have_current_path(backoffice_dossier_path(4), only_path: true) - page.find_by_id('open-message').trigger('click') + scenario 'Adding message', js: true do + page.find_by_id("tr_dossier_#{procedure_1.dossiers.first.id}").trigger('click') + expect(page).to have_current_path(backoffice_dossier_path(procedure_1.dossiers.first.id), only_path: true) + page.find_by_id('open-message').click page.execute_script("$('#texte_commentaire').data('wysihtml5').editor.setValue('Contenu du nouveau message')") - page.find_by_id('save-message').trigger('click') + page.find_by_id('save-message').click expect(page.find('.last-commentaire .content').text).to eq('Contenu du nouveau message') end end diff --git a/spec/features/backoffice/invitation_spec.rb b/spec/features/backoffice/invitation_spec.rb deleted file mode 100644 index ffeb61158..000000000 --- a/spec/features/backoffice/invitation_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'spec_helper' - -feature 'As an Accompagnateur I can send invitations from dossiers', js: true do - - let(:user) { create(:user) } - let(:gestionnaire) { create(:gestionnaire) } - let(:procedure_1) { create(:procedure, :with_type_de_champ, libelle: 'procedure 1') } - - before 'Assign procedures to Accompagnateur and generating dossiers for each' do - create :assign_to, gestionnaire: gestionnaire, procedure: procedure_1 - Dossier.create(procedure_id: procedure_1.id.to_s, user: user, state: 'initiated') - login_as gestionnaire, scope: :gestionnaire - visit backoffice_dossier_path(1) - end - - context 'On dossier show' do - - scenario 'Sending invitation' do - page.find('#invitations').click - page.find('#invitation-email').set('toto@email.com') - page.find('#send-invitation .btn-success').trigger('click') - end - - end -end diff --git a/spec/features/backoffice/navigate_to_dossier_spec.rb b/spec/features/backoffice/navigate_to_dossier_spec.rb index b73a1217d..b7f30467c 100644 --- a/spec/features/backoffice/navigate_to_dossier_spec.rb +++ b/spec/features/backoffice/navigate_to_dossier_spec.rb @@ -14,7 +14,7 @@ feature 'on backoffice page', js: true do create :follow, gestionnaire: gestionnaire, dossier: dossier create :assign_to, gestionnaire: gestionnaire, procedure: procedure_individual create :follow, gestionnaire: gestionnaire, dossier: dossier_individual - visit backoffice_path + visit users_path end context 'when gestionnaire is logged in' do diff --git a/spec/features/description_page/upload_piece_justificative_spec.rb b/spec/features/description_page/upload_piece_justificative_spec.rb index 22bd5e50b..1ee2c1360 100644 --- a/spec/features/description_page/upload_piece_justificative_spec.rb +++ b/spec/features/description_page/upload_piece_justificative_spec.rb @@ -14,7 +14,6 @@ feature 'user is on description page' do 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') } diff --git a/spec/features/users/complete_demande_spec.rb b/spec/features/users/complete_demande_spec.rb index 55f2f3d4d..dc6145cce 100644 --- a/spec/features/users/complete_demande_spec.rb +++ b/spec/features/users/complete_demande_spec.rb @@ -61,7 +61,7 @@ feature 'user path for dossier creation' do context 'when validating info entreprise recap page' do before do page.check('dossier_autorisation_donnees') - page.click_on 'Etape suivante' + page.find_by_id('etape_suivante').trigger('click') end scenario 'user is on description page' do expect(page).to have_css('#description_page') @@ -69,7 +69,7 @@ feature 'user path for dossier creation' do context 'user fill and validate description page' do before do page.find_by_id("champs_#{Dossier.last.champs.first.id}").set 'Mon super projet' - page.click_on 'Soumettre mon dossier' + page.find_by_id('suivant').trigger('click') end scenario 'user is on recap page' do expect(page).to have_css('#users_recapitulatif_dossier_show') diff --git a/spec/features/users/dossier_creation_spec.rb b/spec/features/users/dossier_creation_spec.rb index 3d19d4118..d1a970275 100644 --- a/spec/features/users/dossier_creation_spec.rb +++ b/spec/features/users/dossier_creation_spec.rb @@ -1,7 +1,6 @@ require 'spec_helper' -feature 'As a User I wanna create a dossier', js: true do - +feature 'As a User I wanna create a dossier' do let(:user) { create(:user) } let(:siret) { '40307130100044' } let(:siren) { siret[0...9] } @@ -17,18 +16,18 @@ feature 'As a User I wanna create a dossier', js: true do fill_in 'dossier_individual_attributes_prenom', with: 'Prenom' fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987' find(:css, "#dossier_autorisation_donnees[value='1']").set(true) - page.find_by_id('etape_suivante').trigger('click') - expect(page).to have_current_path(users_dossier_carte_path(Dossier.first.id.to_s), only_path: true) - page.find_by_id('etape_suivante').trigger('click') - fill_in 'champs_1', with: 'contenu du champ 1' - page.find_by_id('suivant').trigger('click') - expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true) + page.find_by_id('etape_suivante').click + expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) + page.find_by_id('etape_suivante').click + fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1' + page.find_by_id('suivant').click + expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) end - scenario 'Identification through siret', vcr: {cassette_name: 'search_ban_paris'} do + scenario 'Identification through siret', vcr: {cassette_name: 'search_ban_paris'}, js: true do login_as user, scope: :user visit commencer_path(procedure_path: procedure_with_siret.path) - expect(page).to have_current_path(users_dossier_path(Dossier.first.id.to_s), only_path: true) + expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) fill_in 'dossier_siret', with: siret stub_request(:get, "https://api-dev.apientreprise.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}") .to_return(status: 200, body: File.read('spec/support/files/etablissement.json')) @@ -43,11 +42,11 @@ feature 'As a User I wanna create a dossier', js: true do expect(page).to have_css('#recap_info_entreprise') find(:css, "#dossier_autorisation_donnees[value='1']").set(true) page.find_by_id('etape_suivante').trigger('click') - expect(page).to have_current_path(users_dossier_carte_path(Dossier.first.id.to_s), only_path: true) + expect(page).to have_current_path(users_dossier_carte_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) page.find_by_id('etape_suivante').trigger('click') - fill_in 'champs_1', with: 'contenu du champ 1' + fill_in "champs_#{procedure_with_siret.dossiers.last.champs.first.id}", with: 'contenu du champ 1' page.find_by_id('suivant').trigger('click') - expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true) + expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) end end end diff --git a/spec/features/users/dossier_edition_spec.rb b/spec/features/users/dossier_edition_spec.rb index 85cbc97b6..0029c7c83 100644 --- a/spec/features/users/dossier_edition_spec.rb +++ b/spec/features/users/dossier_edition_spec.rb @@ -40,7 +40,7 @@ feature 'As a User I want to edit a dossier I own' do fill_in "champs_#{dossier.champs.first.id.to_s}", with: 'Contenu du champ 1' page.find_by_id('modification_terminee').click expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s), only_path: true) - expect(page.find('#champ-1-value').text).to eq('Contenu du champ 1') + expect(page.find("#champ-#{dossier.champs.first.id}-value").text).to eq('Contenu du champ 1') end end end diff --git a/spec/features/users/dossier_index_spec.rb b/spec/features/users/dossier_index_spec.rb index a2b649693..e15c0fd19 100644 --- a/spec/features/users/dossier_index_spec.rb +++ b/spec/features/users/dossier_index_spec.rb @@ -15,7 +15,7 @@ feature 'As a User I want to sort and paginate dossiers', js: true do page.find_by_id('etape_suivante').trigger('click') page.find_by_id('suivant').trigger('click') 50.times do - Dossier.create(procedure_id: 1, user_id: 1, state: "initiated") + Dossier.create(procedure_id: procedure_for_individual.id, user_id: user.id, state: "initiated") end visit root_path end @@ -24,30 +24,30 @@ feature 'As a User I want to sort and paginate dossiers', js: true do scenario 'Using sort' do visit "/users/dossiers?dossiers_smart_listing[sort][id]=asc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('1') - expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq('2') + expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) + expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq(user.dossiers.second.id.to_s) visit "/users/dossiers?dossiers_smart_listing[sort][id]=desc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('51') - expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq('50') + expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 50).to_s) + expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq((user.dossiers.first.id + 49).to_s) visit "/users/dossiers?dossiers_smart_listing[sort][id]=asc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('1') - expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq('2') + expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) + expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq(user.dossiers.second.id.to_s) end scenario 'Using pagination' do visit "/users/dossiers?dossiers_smart_listing[sort][id]=asc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('1') + expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) page.find('.next_page a').trigger('click') wait_for_ajax - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('11') + expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 10).to_s) page.find('.next_page a').trigger('click') wait_for_ajax - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('21') + expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 20).to_s) page.find('.prev a').trigger('click') wait_for_ajax page.find('.prev a').trigger('click') wait_for_ajax - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('1') + expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id).to_s) end end diff --git a/spec/features/users/invitation_spec.rb b/spec/features/users/invitation_spec.rb deleted file mode 100644 index 0ae2f9bb5..000000000 --- a/spec/features/users/invitation_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'spec_helper' - -feature 'As a User I can send invitations from dossiers', js: true do - - let(:user) { create(:user) } - let(:procedure_1) { create(:procedure, :with_type_de_champ, libelle: 'procedure 1') } - - before 'Assign procedures to Accompagnateur and generating dossiers for each' do - Dossier.create(procedure_id: procedure_1.id.to_s, user: user, state: 'initiated') - login_as user, scope: :user - visit users_dossier_recapitulatif_path(1) - end - - context 'On dossier show' do - - scenario 'Sending invitation' do - page.find('#invitations').click - fill_in 'invitation-email', with: 'toto@email.com' - page.find('#send-invitation .btn-success').trigger('click') - end - - end -end