Fix some features tests

This commit is contained in:
Xavier J 2017-02-13 11:57:35 +01:00
parent bc918446f2
commit 306650ee89
10 changed files with 58 additions and 108 deletions

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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') }

View file

@ -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')

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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