diff --git a/Gemfile b/Gemfile
index 9a9ff1600..0fef04096 100644
--- a/Gemfile
+++ b/Gemfile
@@ -129,6 +129,7 @@ group :test do
gem 'shoulda-matchers', require: false
gem 'simplecov', require: false
gem 'simplecov-cobertura', require: false
+ gem "test-prof"
gem 'timecop'
gem 'vcr'
gem 'webmock'
diff --git a/Gemfile.lock b/Gemfile.lock
index e5a1f6b2c..30de1afaf 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -783,6 +783,7 @@ GEM
temple (0.8.2)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
+ test-prof (1.3.3)
thor (1.3.1)
thread_safe (0.3.6)
tilt (2.3.0)
@@ -1019,6 +1020,7 @@ DEPENDENCIES
string-similarity
strong_migrations
sys-proctable
+ test-prof
timecop
turbo-rails
typhoeus
diff --git a/spec/components/dossiers/message_component_spec.rb b/spec/components/dossiers/message_component_spec.rb
index 01e5dfe3d..c89426522 100644
--- a/spec/components/dossiers/message_component_spec.rb
+++ b/spec/components/dossiers/message_component_spec.rb
@@ -196,7 +196,7 @@ RSpec.describe Dossiers::MessageComponent, type: :component do
describe 'groupe_gestionnaire' do
let(:show_reply_button) { false }
- let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: create(:administrateur)) }
+ let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: administrateurs(:default_admin)) }
let(:groupe_gestionnaire) { commentaire.groupe_gestionnaire }
let(:connected_user) { commentaire.sender }
subject { render_inline(component).to_html }
@@ -222,7 +222,7 @@ RSpec.describe Dossiers::MessageComponent, type: :component do
context 'with an gestionnaire message' do
let(:gestionnaire) { create(:gestionnaire) }
- let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: create(:administrateur), gestionnaire: gestionnaire, body: 'Second message') }
+ let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: administrateurs(:default_admin), gestionnaire: gestionnaire, body: 'Second message') }
it 'should display gestionnaire\'s email' do
is_expected.to have_text(gestionnaire.email)
@@ -237,14 +237,14 @@ RSpec.describe Dossiers::MessageComponent, type: :component do
end
context 'when commentaire had been written by connected gestionnaire and discarded' do
- let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: create(:administrateur), gestionnaire: gestionnaire, body: 'Second message', discarded_at: 2.days.ago) }
+ let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: administrateurs(:default_admin), gestionnaire: gestionnaire, body: 'Second message', discarded_at: 2.days.ago) }
it { is_expected.not_to have_selector("form[action=\"#{form_url}\"]") }
it { is_expected.to have_selector(".rich-text", text: component.t('.deleted_body')) }
end
context 'on a procedure where commentaire had been written another gestionnaire' do
- let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: create(:administrateur), gestionnaire: create(:gestionnaire), body: 'Second message') }
+ let(:commentaire) { create(:commentaire_groupe_gestionnaire, sender: administrateurs(:default_admin), gestionnaire: create(:gestionnaire), body: 'Second message') }
it { is_expected.not_to have_selector("form[action=\"#{form_url}\"]") }
end
@@ -261,7 +261,7 @@ RSpec.describe Dossiers::MessageComponent, type: :component do
let(:present_date) { Time.zone.local(2018, 9, 2, 10, 5, 0) }
let(:creation_date) { present_date }
let(:commentaire) do
- Timecop.freeze(creation_date) { create(:commentaire_groupe_gestionnaire, sender: create(:administrateur)) }
+ Timecop.freeze(creation_date) { create(:commentaire_groupe_gestionnaire, sender: administrateurs(:default_admin)) }
end
subject do
diff --git a/spec/controllers/administrateurs/activate_controller_spec.rb b/spec/controllers/administrateurs/activate_controller_spec.rb
index b1f0ee627..b7d0e58ff 100644
--- a/spec/controllers/administrateurs/activate_controller_spec.rb
+++ b/spec/controllers/administrateurs/activate_controller_spec.rb
@@ -1,6 +1,6 @@
describe Administrateurs::ActivateController, type: :controller do
describe '#new' do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:token) { admin.user.send(:set_reset_password_token) }
before { allow(controller).to receive(:trust_device) }
@@ -19,7 +19,7 @@ describe Administrateurs::ActivateController, type: :controller do
end
describe '#create' do
- let!(:administrateur) { create(:administrateur) }
+ let!(:administrateur) { administrateurs(:default_admin) }
let(:token) { administrateur.user.send(:set_reset_password_token) }
let(:password) { 'Another-password-ok!@#123?' }
diff --git a/spec/controllers/administrateurs/api_tokens_controller_spec.rb b/spec/controllers/administrateurs/api_tokens_controller_spec.rb
index c96f0cbc8..9b7ecc5b4 100644
--- a/spec/controllers/administrateurs/api_tokens_controller_spec.rb
+++ b/spec/controllers/administrateurs/api_tokens_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::APITokensController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create(:procedure, administrateur: admin) }
before { sign_in(admin.user) }
@@ -84,7 +84,7 @@ describe Administrateurs::APITokensController, type: :controller do
end
context 'with procedure filtering on a procedure not owned by the admin' do
- let(:another_procedure) { create(:procedure) }
+ let(:another_procedure) { create(:procedure, :new_administrateur) }
let(:params) { default_params.merge(target: 'custom', targets: [another_procedure.id]) }
it do
diff --git a/spec/controllers/administrateurs/archives_controller_spec.rb b/spec/controllers/administrateurs/archives_controller_spec.rb
index 481c55dc7..25c82eb01 100644
--- a/spec/controllers/administrateurs/archives_controller_spec.rb
+++ b/spec/controllers/administrateurs/archives_controller_spec.rb
@@ -1,7 +1,6 @@
describe Administrateurs::ArchivesController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create :procedure, groupe_instructeurs: [groupe_instructeur1, groupe_instructeur2] }
- let(:administrateur_procedure) { create(:administrateurs_procedure, procedure: procedure, administrateur: admin, manager: manager) }
let(:groupe_instructeur1) { create(:groupe_instructeur) }
let(:groupe_instructeur2) { create(:groupe_instructeur) }
@@ -15,7 +14,7 @@ describe Administrateurs::ArchivesController, type: :controller do
context 'when logged in as administrateur_procedure.manager=false' do
let(:manager) { false }
before do
- administrateur_procedure
+ admin.administrateurs_procedures.where(procedure:).update_all(manager:)
sign_in(admin.user)
end
@@ -30,7 +29,7 @@ describe Administrateurs::ArchivesController, type: :controller do
let(:manager) { true }
before do
- administrateur_procedure
+ admin.administrateurs_procedures.where(procedure:).update_all(manager:)
sign_in(admin.user)
end
@@ -49,13 +48,13 @@ describe Administrateurs::ArchivesController, type: :controller do
let(:manager) { false }
before do
- administrateur_procedure
+ admin.administrateurs_procedures.where(procedure:).update_all(manager:)
sign_in(admin.user)
end
- it { is_expected.to redirect_to(admin_procedure_archives_path(procedure)) }
it 'enqueue the creation job' do
expect { subject }.to have_enqueued_job(ArchiveCreationJob).with(procedure, an_instance_of(Archive), admin)
+ expect(subject).to redirect_to(admin_procedure_archives_path(procedure))
end
end
@@ -63,7 +62,7 @@ describe Administrateurs::ArchivesController, type: :controller do
let(:manager) { true }
before do
- administrateur_procedure
+ admin.administrateurs_procedures.where(procedure:).update_all(manager:)
sign_in(admin.user)
end
diff --git a/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb b/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb
index d736aa9c5..dea76c8f9 100644
--- a/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb
+++ b/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::AttestationTemplateV2sController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:attestation_template) { build(:attestation_template, :v2) }
let(:procedure) { create(:procedure, :published, administrateur: admin, attestation_template:, libelle: "Ma démarche") }
let(:logo) { fixture_file_upload('spec/fixtures/files/white.png', 'image/png') }
diff --git a/spec/controllers/administrateurs/attestation_templates_controller_spec.rb b/spec/controllers/administrateurs/attestation_templates_controller_spec.rb
index e5b7ac924..5c7e49888 100644
--- a/spec/controllers/administrateurs/attestation_templates_controller_spec.rb
+++ b/spec/controllers/administrateurs/attestation_templates_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::AttestationTemplatesController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:attestation_template) { build(:attestation_template) }
let(:procedure) { create(:procedure, administrateur: admin, attestation_template: attestation_template) }
let(:logo) { fixture_file_upload('spec/fixtures/files/white.png', 'image/png') }
diff --git a/spec/controllers/administrateurs/dossier_submitted_messages_controller_spec.rb b/spec/controllers/administrateurs/dossier_submitted_messages_controller_spec.rb
index 46f002f05..28960d2ab 100644
--- a/spec/controllers/administrateurs/dossier_submitted_messages_controller_spec.rb
+++ b/spec/controllers/administrateurs/dossier_submitted_messages_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::DossierSubmittedMessagesController, type: :controller do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before { sign_in(administrateur.user) }
diff --git a/spec/controllers/administrateurs/experts_procedures_controller_spec.rb b/spec/controllers/administrateurs/experts_procedures_controller_spec.rb
index 92f84d7e6..4374afb8b 100644
--- a/spec/controllers/administrateurs/experts_procedures_controller_spec.rb
+++ b/spec/controllers/administrateurs/experts_procedures_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::ExpertsProceduresController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create :procedure, administrateur: admin }
before do
diff --git a/spec/controllers/administrateurs/exports_controller_spec.rb b/spec/controllers/administrateurs/exports_controller_spec.rb
index fdcf627e5..39ee2815a 100644
--- a/spec/controllers/administrateurs/exports_controller_spec.rb
+++ b/spec/controllers/administrateurs/exports_controller_spec.rb
@@ -1,6 +1,6 @@
describe Administrateurs::ExportsController, type: :controller do
describe '#download' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before { sign_in(administrateur.user) }
subject do
@@ -8,7 +8,7 @@ describe Administrateurs::ExportsController, type: :controller do
end
context 'when the procedure does not belongs to admin' do
- let!(:procedure) { create(:procedure, administrateurs: [create(:administrateur)]) }
+ let!(:procedure) { create(:procedure, :new_administrateur) }
it 'blocks' do
is_expected.to have_http_status(:not_found)
end
@@ -19,11 +19,10 @@ describe Administrateurs::ExportsController, type: :controller do
context 'when the export is does not exist' do
it 'displays an notice' do
- is_expected.to redirect_to(admin_procedure_archives_url(procedure))
+ expect { subject }.to change(Export, :count).by(1)
+ expect(subject).to redirect_to(admin_procedure_archives_url(procedure))
expect(flash.notice).to be_present
end
-
- it { expect { subject }.to change(Export, :count).by(1) }
end
context 'when the export is not ready' do
@@ -66,7 +65,9 @@ describe Administrateurs::ExportsController, type: :controller do
context 'when admin is allowed present as manager' do
let!(:procedure) { create(:procedure) }
- let!(:administrateur_procedure) { create(:administrateurs_procedure, procedure: procedure, administrateur: administrateur, manager: true) }
+ before do
+ procedure.administrateurs_procedures.update_all(manager: true)
+ end
context 'get #index.html' do
it { is_expected.to have_http_status(:forbidden) }
diff --git a/spec/controllers/administrateurs/groupe_gestionnaire_controller_spec.rb b/spec/controllers/administrateurs/groupe_gestionnaire_controller_spec.rb
index ce3c59c08..c60f115cf 100644
--- a/spec/controllers/administrateurs/groupe_gestionnaire_controller_spec.rb
+++ b/spec/controllers/administrateurs/groupe_gestionnaire_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::GroupeGestionnaireController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
describe "#show" do
subject { get :show }
diff --git a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb
index 6673b0607..7727cbfa0 100644
--- a/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb
+++ b/spec/controllers/administrateurs/groupe_instructeurs_controller_spec.rb
@@ -2,7 +2,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
render_views
include Logic
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create(:procedure, :routee, :published, :for_individual, administrateurs: [admin]) }
let!(:gi_1_1) { procedure.defaut_groupe_instructeur }
@@ -52,9 +52,8 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
let!(:instructeur_not_assigned_2) { create :instructeur, email: 'instructeur_4@ministere-b.gouv.fr', administrateurs: [admin] }
subject! { get :show, params: { procedure_id: procedure.id, id: gi_1_1.id } }
- it { expect(response.status).to eq(200) }
-
it 'sets the assigned and not assigned instructeurs' do
+ expect(response.status).to eq(200)
expect(assigns(:instructeurs)).to match_array([instructeur_assigned_1, instructeur_assigned_2])
expect(assigns(:available_instructeur_emails)).to match_array(['instructeur_3@ministere-a.gouv.fr', 'instructeur_4@ministere-b.gouv.fr'])
end
@@ -104,17 +103,21 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
context 'with a valid name' do
let(:label) { "nouveau_groupe" }
- it { expect(flash.notice).to be_present }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, procedure.groupe_instructeurs.last)) }
- it { expect(procedure.groupe_instructeurs.count).to eq(3) }
+ it do
+ expect(flash.notice).to be_present
+ expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, procedure.groupe_instructeurs.last))
+ expect(procedure.groupe_instructeurs.count).to eq(3)
+ end
end
context 'with an invalid group name' do
let(:label) { gi_1_1.label }
- it { expect(response).to render_template(:index) }
- it { expect(procedure.groupe_instructeurs.count).to eq(2) }
- it { expect(flash.alert).to be_present }
+ it do
+ expect(response).to render_template(:index)
+ expect(procedure.groupe_instructeurs.count).to eq(2)
+ expect(flash.alert).to be_present
+ end
end
end
@@ -132,28 +135,35 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
delete_group gi_1_1
end
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq "Suppression impossible : le groupe « défaut » est le groupe par défaut." }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
- it { expect(procedure.groupe_instructeurs.count).to eq(2) }
+ it 'verifies flash alerts and redirections' do
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq "Suppression impossible : le groupe « défaut » est le groupe par défaut."
+ expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure))
+ expect(procedure.groupe_instructeurs.count).to eq(2)
+ end
end
context 'with many groups' do
context 'of a group that can be deleted' do
before { delete_group gi_1_2 }
- it { expect(flash.notice).to eq "le groupe « deuxième groupe » a été supprimé et le routage a été désactivé." }
- it { expect(procedure.groupe_instructeurs.count).to eq(1) }
- it { expect(procedure.reload.routing_enabled?).to eq(false) }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
+
+ it 'deletes the group and updates routing' do
+ expect(flash.notice).to eq "le groupe « deuxième groupe » a été supprimé et le routage a été désactivé."
+ expect(procedure.groupe_instructeurs.count).to eq(1)
+ expect(procedure.reload.routing_enabled?).to eq(false)
+ expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure))
+ end
end
context 'of a group with dossiers, that cannot be deleted' do
let!(:dossier12) { create(:dossier, procedure: procedure, state: Dossier.states.fetch(:en_construction), groupe_instructeur: gi_1_2) }
before { delete_group gi_1_2 }
- it { expect(flash.alert).to be_present }
- it { expect(procedure.groupe_instructeurs.count).to eq(2) }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure)) }
+ it 'attempts to delete a group with active dossiers and fails' do
+ expect(flash.alert).to be_present
+ expect(procedure.groupe_instructeurs.count).to eq(2)
+ expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure))
+ end
end
end
end
@@ -173,10 +183,12 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
:target_group => group)
end
- it { expect(response).to have_http_status(:ok) }
- it { expect(response.body).to include(reaffecter_url(procedure.defaut_groupe_instructeur)) }
- it { expect(response.body).not_to include(reaffecter_url(gi_1_2)) }
- it { expect(response.body).to include(reaffecter_url(gi_1_3)) }
+ it 'checks response and body content for specific conditions' do
+ expect(response).to have_http_status(:ok)
+ expect(response.body).to include(reaffecter_url(procedure.defaut_groupe_instructeur))
+ expect(response.body).not_to include(reaffecter_url(gi_1_2))
+ expect(response.body).to include(reaffecter_url(gi_1_3))
+ end
end
describe '#reaffecter' do
@@ -319,25 +331,29 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
describe '#add_instructeur_procedure_non_routee' do
# faire la meme chose sur une procedure non routee
- let(:procedure_non_routee) { create :procedure }
- let!(:groupe_instructeur) { create(:administrateurs_procedure, procedure: procedure_non_routee, administrateur: admin, manager: manager) }
+ let(:procedure_non_routee) { create(:procedure, administrateur: admin) }
let(:emails) { ['instructeur_3@ministere_a.gouv.fr', 'instructeur_4@ministere_b.gouv.fr'].to_json }
- subject { post :add_instructeur, params: { emails: emails, procedure_id: procedure_non_routee.id, id: procedure_non_routee.defaut_groupe_instructeur.id } }
let(:manager) { false }
+ before {
+ procedure_non_routee.administrateurs_procedures.where(administrateur: admin).update_all(manager:)
+ }
+ subject { post :add_instructeur, params: { emails: emails, procedure_id: procedure_non_routee.id, id: procedure_non_routee.defaut_groupe_instructeur.id } }
context 'when all emails are valid' do
let(:emails) { ['test@b.gouv.fr', 'test2@b.gouv.fr'].to_json }
- it { expect(response.status).to eq(200) }
- it { expect(subject.request.flash[:alert]).to be_nil }
- it { expect(subject.request.flash[:notice]).to be_present }
- it { expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee) }
+ it do
+ expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee)
+ expect(subject.request.flash[:alert]).to be_nil
+ expect(subject.request.flash[:notice]).to be_present
+ end
end
context 'when there is at least one bad email' do
let(:emails) { ['badmail', 'instructeur2@gmail.com'].to_json }
- it { expect(response.status).to eq(200) }
- it { expect(subject.request.flash[:alert]).to be_present }
- it { expect(subject.request.flash[:notice]).to be_present }
- it { expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee) }
+ it do
+ expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee)
+ expect(subject.request.flash[:alert]).to be_present
+ expect(subject.request.flash[:notice]).to be_present
+ end
end
context 'when the admin wants to assign an instructor who is already assigned on this procedure' do
@@ -379,11 +395,11 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
.and_return(double(deliver_later: true))
do_request
end
- it { expect(gi_1_2.instructeurs.pluck(:email)).to include(*new_instructeur_emails) }
- it { expect(flash.notice).to be_present }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
- it { expect(procedure.routing_enabled?).to be_truthy }
- it "calls GroupeInstructeurMailer with the right params" do
+ it 'validates changes and responses' do
+ expect(gi_1_2.instructeurs.pluck(:email)).to include(*new_instructeur_emails)
+ expect(flash.notice).to be_present
+ expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2))
+ expect(procedure.routing_enabled?).to be_truthy
expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).with(
gi_1_2,
[instructeur_email_verified],
@@ -415,8 +431,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
context 'of badly formed email' do
let(:new_instructeur_emails) { ['badly_formed_email'] }
before { do_request }
- it { expect(flash.alert).to be_present }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2)) }
+ it do
+ expect(flash.alert).to be_present
+ expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_2))
+ end
end
context 'of an empty string' do
@@ -460,10 +478,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
remove_instructeur(admin.instructeur)
end
- it { expect(gi_1_1.instructeurs).to include(instructeur) }
- it { expect(gi_1_1.reload.instructeurs.count).to eq(1) }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1)) }
- it "calls GroupeInstructeurMailer with the right groupe and instructeur" do
+ it 'verifies instructeurs and sends notifications' do
+ expect(gi_1_1.instructeurs).to include(instructeur)
+ expect(gi_1_1.reload.instructeurs.count).to eq(1)
+ expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1))
expect(GroupeInstructeurMailer).to have_received(:notify_removed_instructeur).with(
gi_1_1,
admin.instructeur,
@@ -478,10 +496,12 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
remove_instructeur(instructeur)
end
- it { expect(gi_1_1.instructeurs).to include(instructeur) }
- it { expect(gi_1_1.instructeurs.count).to eq(1) }
- it { expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un instructeur dans le groupe') }
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1)) }
+ it 'validates remaining instructeur and checks alert message' do
+ expect(gi_1_1.instructeurs).to include(instructeur)
+ expect(gi_1_1.instructeurs.count).to eq(1)
+ expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un instructeur dans le groupe')
+ expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1))
+ end
end
end
@@ -496,19 +516,37 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
end
context 'when the instructor is assigned to the procedure' do
- subject { delete :remove_instructeur, params: { instructeur: { id: instructeur_assigned_1.id }, procedure_id: procedure_non_routee.id, id: procedure_non_routee.defaut_groupe_instructeur.id } }
- it { expect(subject.request.flash[:notice]).to be_present }
- it { expect(subject.request.flash[:alert]).to be_nil }
- it { expect(response.status).to eq(302) }
- it { expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee) }
+ subject do
+ delete :remove_instructeur, params: {
+ instructeur: { id: instructeur_assigned_1.id },
+ procedure_id: procedure_non_routee.id,
+ id: procedure_non_routee.defaut_groupe_instructeur.id
+ }
+ end
+
+ it 'processes the removal of an assigned instructeur and checks response' do
+ expect(subject.request.flash[:notice]).to be_present
+ expect(subject.request.flash[:alert]).to be_nil
+ expect(response.status).to eq(302)
+ expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee)
+ end
end
context 'when the instructor is not assigned to the procedure' do
- subject { delete :remove_instructeur, params: { instructeur: { id: instructeur_assigned_3.id }, procedure_id: procedure_non_routee.id, id: procedure_non_routee.defaut_groupe_instructeur.id } }
- it { expect(subject.request.flash[:alert]).to be_present }
- it { expect(subject.request.flash[:notice]).to be_nil }
- it { expect(response.status).to eq(302) }
- it { expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee) }
+ subject do
+ delete :remove_instructeur, params: {
+ instructeur: { id: instructeur_assigned_3.id },
+ procedure_id: procedure_non_routee.id,
+ id: procedure_non_routee.defaut_groupe_instructeur.id
+ }
+ end
+
+ it 'attempts to remove an unassigned instructeur and validates alerts' do
+ expect(subject.request.flash[:alert]).to be_present
+ expect(subject.request.flash[:notice]).to be_nil
+ expect(response.status).to eq(302)
+ expect(subject).to redirect_to admin_procedure_groupe_instructeurs_path(procedure_non_routee)
+ end
end
end
@@ -523,10 +561,12 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect(response.status).to eq(302) }
- it { expect(procedure.groupe_instructeurs.first.label).to eq("Afrique") }
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: kara") }
+ it 'checks multiple response aspects after CSV upload' do
+ expect(response.status).to eq(302)
+ expect(procedure.groupe_instructeurs.first.label).to eq("Afrique")
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: kara")
+ end
end
context 'when the csv file has only one column' do
@@ -534,10 +574,12 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect { subject }.not_to raise_error }
- it { expect(response.status).to eq(302) }
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant ce modèle pour une procédure sans routage ou celui-ci pour une procédure routée") }
+ it 'handles one column CSV file gracefully' do
+ expect { subject }.not_to raise_error
+ expect(response.status).to eq(302)
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant ce modèle pour une procédure sans routage ou celui-ci pour une procédure routée")
+ end
end
context 'when the file content type is application/vnd.ms-excel' do
@@ -545,8 +587,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect(flash.notice).to be_present }
- it { expect(flash.notice).to eq("La liste des instructeurs a été importée avec succès") }
+ it 'imports excel file with success notice' do
+ expect(flash.notice).to be_present
+ expect(flash.notice).to eq("La liste des instructeurs a été importée avec succès")
+ end
end
context 'when the content of csv contains special characters' do
@@ -558,10 +602,12 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
subject
end
- it { expect(procedure.groupe_instructeurs.pluck(:label)).to match_array(["Auvergne-Rhône-Alpes", "Vendée", "défaut", "deuxième groupe"]) }
- it { expect(flash.notice).to be_present }
- it { expect(flash.notice).to eq("La liste des instructeurs a été importée avec succès") }
- it { expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).twice }
+ it 'processes CSV with special characters and sends notifications' do
+ expect(procedure.groupe_instructeurs.pluck(:label)).to match_array(["Auvergne-Rhône-Alpes", "Vendée", "défaut", "deuxième groupe"])
+ expect(flash.notice).to be_present
+ expect(flash.notice).to eq("La liste des instructeurs a été importée avec succès")
+ expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).twice
+ end
end
context 'when the csv file length is more than 1 mo' do
@@ -572,8 +618,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
subject
end
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Importation impossible : le poids du fichier est supérieur à 1 Mo") }
+ it 'verifies the file size limitation' do
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Importation impossible : le poids du fichier est supérieur à 1 Mo")
+ end
end
context 'when the file content type is not accepted' do
@@ -581,8 +629,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Importation impossible : veuillez importer un fichier CSV") }
+ it 'checks file format acceptance' do
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Importation impossible : veuillez importer un fichier CSV")
+ end
end
context 'when the headers are wrong' do
@@ -590,8 +640,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant ce modèle pour une procédure sans routage ou celui-ci pour une procédure routée") }
+ it 'validates the header format of CSV' do
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Importation impossible, veuillez importer un csv suivant ce modèle pour une procédure sans routage ou celui-ci pour une procédure routée")
+ end
end
context 'when procedure is closed' do
@@ -600,8 +652,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect(procedure.groupe_instructeurs.first.label).to eq("Afrique") }
- it { expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: kara") }
+ it 'handles imports with closed procedures' do
+ expect(procedure.groupe_instructeurs.first.label).to eq("Afrique")
+ expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: kara")
+ end
end
context 'when emails are invalid' do
@@ -614,8 +668,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
subject
end
- it { expect(flash.alert).to include("Import terminé. Cependant les emails suivants ne sont pas pris en compte:") }
- it { expect(GroupeInstructeurMailer).not_to have_received(:notify_added_instructeurs) }
+ it 'manages CSV with invalid emails and checks for mailer action' do
+ expect(flash.alert).to include("Import terminé. Cependant les emails suivants ne sont pas pris en compte:")
+ expect(GroupeInstructeurMailer).not_to have_received(:notify_added_instructeurs)
+ end
end
end
@@ -635,11 +691,11 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
subject
end
- it { expect(response.status).to eq(302) }
- it { expect(procedure_non_routee.instructeurs.pluck(:email)).to match_array(["kara@beta-gouv.fr", "philippe@mail.com", "lisa@gouv.fr"]) }
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: eric") }
- it "calls GroupeInstructeurMailer" do
+ it 'verifies response status, updates instructors, and sends alerts with email issues' do
+ expect(response.status).to eq(302)
+ expect(procedure_non_routee.instructeurs.pluck(:email)).to match_array(["kara@beta-gouv.fr", "philippe@mail.com", "lisa@gouv.fr"])
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: eric")
expect(GroupeInstructeurMailer).to have_received(:notify_added_instructeurs).with(
procedure_non_routee.defaut_groupe_instructeur,
any_args,
@@ -653,19 +709,24 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect(response.status).to eq(302) }
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: kara") }
- it { expect(procedure_non_routee.reload.routing_enabled?).to be_truthy }
+ it 'confirms multiple column CSV import, response, and routing changes' do
+ expect(response.status).to eq(302)
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Import terminé. Cependant les emails suivants ne sont pas pris en compte: kara")
+ expect(procedure_non_routee.reload.routing_enabled?).to be_truthy
+ end
end
context 'when the file content type is application/vnd.ms-excel' do
let(:csv_file) { fixture_file_upload('spec/fixtures/files/valid-instructeurs-file.csv', "application/vnd.ms-excel") }
before { subject }
- it { expect(procedure_non_routee.instructeurs.pluck(:email)).to match_array(["kara@beta-gouv.fr", "philippe@mail.com", "lisa@gouv.fr"]) }
- it { expect(flash.notice).to be_present }
- it { expect(flash.notice).to eq("La liste des instructeurs a été importée avec succès") }
+
+ it 'handles excel file upload and verifies imported instructor emails' do
+ expect(procedure_non_routee.instructeurs.pluck(:email)).to match_array(["kara@beta-gouv.fr", "philippe@mail.com", "lisa@gouv.fr"])
+ expect(flash.notice).to be_present
+ expect(flash.notice).to eq("La liste des instructeurs a été importée avec succès")
+ end
end
context 'when the csv file length is more than 1 mo' do
@@ -676,8 +737,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
subject
end
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Importation impossible : le poids du fichier est supérieur à 1 Mo") }
+ it 'checks for file size limit and displays appropriate flash alert' do
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Importation impossible : le poids du fichier est supérieur à 1 Mo")
+ end
end
context 'when the file content type is not accepted' do
@@ -685,8 +748,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
before { subject }
- it { expect(flash.alert).to be_present }
- it { expect(flash.alert).to eq("Importation impossible : veuillez importer un fichier CSV") }
+ it 'validates file format and displays a flash alert' do
+ expect(flash.alert).to be_present
+ expect(flash.alert).to eq("Importation impossible : veuillez importer un fichier CSV")
+ end
end
context 'when emails are invalid' do
@@ -698,8 +763,10 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
subject
end
- it { expect(flash.alert).to include("Import terminé. Cependant les emails suivants ne sont pas pris en compte:") }
- it { expect(GroupeInstructeurMailer).not_to have_received(:notify_added_instructeurs) }
+ it 'verifies email validity in CSV imports and checks for mailer not being called' do
+ expect(flash.alert).to include("Import terminé. Cependant les emails suivants ne sont pas pris en compte:")
+ expect(GroupeInstructeurMailer).not_to have_received(:notify_added_instructeurs)
+ end
end
end
end
@@ -866,7 +933,9 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
}
}
- it { expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1)) }
- it { expect(gi_1_1.signature).to be_attached }
+ it do
+ expect(response).to redirect_to(admin_procedure_groupe_instructeur_path(procedure, gi_1_1))
+ expect(gi_1_1.signature).to be_attached
+ end
end
end
diff --git a/spec/controllers/administrateurs/jeton_particulier_controller_spec.rb b/spec/controllers/administrateurs/jeton_particulier_controller_spec.rb
index d659f6288..8c82092ca 100644
--- a/spec/controllers/administrateurs/jeton_particulier_controller_spec.rb
+++ b/spec/controllers/administrateurs/jeton_particulier_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::JetonParticulierController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create(:procedure, administrateur: admin) }
before do
diff --git a/spec/controllers/administrateurs/mail_templates_controller_spec.rb b/spec/controllers/administrateurs/mail_templates_controller_spec.rb
index a1a541329..a6fff78f9 100644
--- a/spec/controllers/administrateurs/mail_templates_controller_spec.rb
+++ b/spec/controllers/administrateurs/mail_templates_controller_spec.rb
@@ -3,7 +3,7 @@ describe Administrateurs::MailTemplatesController, type: :controller do
let(:procedure) { create :procedure }
let(:initiated_mail) { Mails::InitiatedMail.default_for_procedure(procedure) }
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
before do
sign_in(procedure.administrateurs.first.user)
diff --git a/spec/controllers/administrateurs/procedure_administrateurs_controller_spec.rb b/spec/controllers/administrateurs/procedure_administrateurs_controller_spec.rb
index 753a3c29e..dd3f647ba 100644
--- a/spec/controllers/administrateurs/procedure_administrateurs_controller_spec.rb
+++ b/spec/controllers/administrateurs/procedure_administrateurs_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::ProcedureAdministrateursController, type: :controller do
- let(:signed_in_admin) { create(:administrateur).tap { _1.user.update(last_sign_in_at: Time.zone.now) } }
+ let(:signed_in_admin) { administrateurs(:default_admin).tap { _1.user.update(last_sign_in_at: Time.zone.now) } }
let(:other_admin) { create(:administrateur).tap { _1.user.update(last_sign_in_at: Time.zone.now) } }
let!(:administrateurs_procedure) { create(:administrateurs_procedure, administrateur: signed_in_admin, procedure: procedure, manager: manager) }
let!(:procedure) { create(:procedure, administrateurs: [other_admin]) }
@@ -12,7 +12,7 @@ describe Administrateurs::ProcedureAdministrateursController, type: :controller
describe '#create' do
context 'as manager' do
let(:manager) { true }
- subject { post :create, params: { procedure_id: procedure.id, administrateur: { email: create(:administrateur).email } }, format: :turbo_stream }
+ subject { post :create, params: { procedure_id: procedure.id, administrateur: { email: administrateurs(:default_admin).email } }, format: :turbo_stream }
it { is_expected.to have_http_status(:forbidden) }
end
end
diff --git a/spec/controllers/administrateurs/procedures_controller_spec.rb b/spec/controllers/administrateurs/procedures_controller_spec.rb
index 116db94d1..d5198d952 100644
--- a/spec/controllers/administrateurs/procedures_controller_spec.rb
+++ b/spec/controllers/administrateurs/procedures_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::ProceduresController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:bad_procedure_id) { 100000 }
let(:path) { 'ma-jolie-demarche' }
@@ -124,8 +124,8 @@ describe Administrateurs::ProceduresController, type: :controller do
context 'for default admin zones' do
let(:zone1) { create(:zone) }
let(:zone2) { create(:zone) }
- let!(:procedure1) { create(:procedure, :published, zones: [zone1]) }
- let!(:procedure2) { create(:procedure, :published, zones: [zone1, zone2]) }
+ let!(:procedure1) { create(:procedure, :published, :new_administrateur, zones: [zone1]) }
+ let!(:procedure2) { create(:procedure, :published, :new_administrateur, zones: [zone1, zone2]) }
let!(:admin_procedure) { create(:procedure, :published, zones: [zone2], administrateur: admin) }
subject { get :all, params: { zone_ids: :admin_default } }
@@ -384,16 +384,15 @@ describe Administrateurs::ProceduresController, type: :controller do
let!(:large_closed_procedure) { create(:procedure_with_dossiers, :closed, dossiers_count: 2) }
let!(:small_closed_procedure) { create(:procedure_with_dossiers, :closed, dossiers_count: 1) }
- it 'displays published and closed procedures' do
+ it 'displays expected procedures' do
+ # published and closed procedures' do
expect(response_procedures).to include(large_published_procedure)
expect(response_procedures).to include(large_closed_procedure)
- end
- it 'doesn’t display procedures without a significant number of dossiers' do
+ # doesn’t display procedures without a significant number of dossiers'
expect(response_procedures).not_to include(small_closed_procedure)
- end
- it 'doesn’t display draft procedures' do
+ # doesn’t display draft procedures'
expect(response_procedures).not_to include(large_draft_procedure)
end
end
@@ -486,19 +485,19 @@ describe Administrateurs::ProceduresController, type: :controller do
post :create, params: { procedure: procedure_params }
end
- describe 'procedure attributs in database' do
- subject { Procedure.last }
+ subject { Procedure.last }
- it { expect(subject.libelle).to eq(libelle) }
- it { expect(subject.description).to eq(description) }
- it { expect(subject.organisation).to eq(organisation) }
- it { expect(subject.administrateurs).to eq([admin]) }
- it { expect(subject.duree_conservation_dossiers_dans_ds).to eq(duree_conservation_dossiers_dans_ds) }
- it { expect(subject.tags).to eq(["planete", "environnement"]) }
+ it "create attributes" do
+ expect(subject.libelle).to eq(libelle)
+ expect(subject.description).to eq(description)
+ expect(subject.organisation).to eq(organisation)
+ expect(subject.administrateurs).to eq([admin])
+ expect(subject.duree_conservation_dossiers_dans_ds).to eq(duree_conservation_dossiers_dans_ds)
+ expect(subject.tags).to eq(["planete", "environnement"])
+
+ expect(response).to redirect_to(champs_admin_procedure_path(Procedure.last))
+ expect(flash[:notice]).to be_present
end
-
- it { is_expected.to redirect_to(champs_admin_procedure_path(Procedure.last)) }
- it { expect(flash[:notice]).to be_present }
end
describe "procedure is saved with custom retention period" do
@@ -510,10 +509,9 @@ describe Administrateurs::ProceduresController, type: :controller do
subject { post :create, params: { procedure: procedure_params } }
- it { expect { subject }.to change { Procedure.count }.by(1) }
-
it "must save retention period and max retention period" do
- subject
+ expect { subject }.to change { Procedure.count }.by(1)
+
last_procedure = Procedure.last
expect(last_procedure.duree_conservation_dossiers_dans_ds).to eq(duree_conservation_dossiers_dans_ds)
expect(last_procedure.max_duree_conservation_dossiers_dans_ds).to eq(Expired::DEFAULT_DOSSIER_RENTENTION_IN_MONTH)
@@ -589,15 +587,19 @@ describe Administrateurs::ProceduresController, type: :controller do
describe 'procedure attributs in database' do
subject { procedure }
- it { expect(subject.libelle).to eq(libelle) }
- it { expect(subject.description).to eq(description) }
- it { expect(subject.organisation).to eq(organisation) }
- it { expect(subject.duree_conservation_dossiers_dans_ds).to eq(duree_conservation_dossiers_dans_ds) }
- it { expect(subject.procedure_expires_when_termine_enabled).to eq(true) }
+ it "update attributes" do
+ expect(subject.libelle).to eq(libelle)
+ expect(subject.description).to eq(description)
+ expect(subject.organisation).to eq(organisation)
+ expect(subject.duree_conservation_dossiers_dans_ds).to eq(duree_conservation_dossiers_dans_ds)
+ expect(subject.procedure_expires_when_termine_enabled).to eq(true)
+ end
end
- it { is_expected.to redirect_to(admin_procedure_path id: procedure.id) }
- it { expect(flash[:notice]).to be_present }
+ it do
+ is_expected.to redirect_to(admin_procedure_path id: procedure.id)
+ expect(flash[:notice]).to be_present
+ end
end
context 'when many attributs are not valid' do
@@ -629,11 +631,11 @@ describe Administrateurs::ProceduresController, type: :controller do
subject { update_procedure }
- describe 'only some properties can be updated' do
- it { expect(subject.libelle).to eq procedure_params[:libelle] }
- it { expect(subject.description).to eq procedure_params[:description] }
- it { expect(subject.organisation).to eq procedure_params[:organisation] }
- it { expect(subject.for_individual).not_to eq procedure_params[:for_individual] }
+ it 'only some properties can be updated' do
+ expect(subject.libelle).to eq procedure_params[:libelle]
+ expect(subject.description).to eq procedure_params[:description]
+ expect(subject.organisation).to eq procedure_params[:organisation]
+ expect(subject.for_individual).not_to eq procedure_params[:for_individual]
end
end
end
@@ -673,7 +675,7 @@ describe Administrateurs::ProceduresController, type: :controller do
end
context 'when admin is not the owner of the procedure' do
- let(:admin_2) { create(:administrateur) }
+ let(:admin_2) { administrateurs(:default_admin) }
before do
sign_out(admin.user)
@@ -688,7 +690,7 @@ describe Administrateurs::ProceduresController, type: :controller do
end
context 'when procedure has invalid fields' do
- let(:admin_2) { create(:administrateur) }
+ let(:admin_2) { administrateurs(:default_admin) }
let(:path) { 'spec/fixtures/files/invalid_file_format.json' }
before do
@@ -915,7 +917,7 @@ describe Administrateurs::ProceduresController, type: :controller do
end
context "when administrateur does not own the procedure" do
- let(:dossier) { create(:dossier) }
+ let(:dossier) { create(:dossier, procedure: create(:procedure, :new_administrateur)) }
it { expect { subject }.to raise_error(ActiveRecord::RecordNotFound) }
end
@@ -955,30 +957,26 @@ describe Administrateurs::ProceduresController, type: :controller do
context 'when all attributes are present' do
render_views
- before { update_monavis }
+ subject { update_monavis }
context 'when the embed code is valid' do
- describe 'the monavis field is updated' do
- subject { procedure }
+ it 'the monavis field is updated' do
+ subject
- it { expect(subject.monavis_embed).to eq(monavis_embed) }
+ expect(procedure.monavis_embed).to eq(monavis_embed)
+ expect(flash[:notice]).to be_present
+ expect(response).to redirect_to(admin_procedure_path(procedure.id))
end
-
- it { expect(flash[:notice]).to be_present }
- it { expect(response).to redirect_to(admin_procedure_path(procedure.id)) }
end
context 'when the embed code is not valid' do
let(:monavis_embed) { 'invalid embed code' }
- describe 'the monavis field is not updated' do
- subject { procedure }
-
- it { expect(subject.monavis_embed).to eq(nil) }
+ it 'the monavis field is not updated' do
+ expect(subject.monavis_embed).to eq(nil)
+ expect(flash[:alert]).to be_present
+ expect(response.body).to include "MonAvis"
end
-
- it { expect(flash[:alert]).to be_present }
- it { expect(response.body).to include "MonAvis" }
end
end
@@ -1016,26 +1014,32 @@ describe Administrateurs::ProceduresController, type: :controller do
context 'when jeton is valid' do
let(:token_is_valid) { true }
- it { expect(flash.alert).to be_nil }
- it { expect(flash.notice).to eq('Le jeton a bien été mis à jour') }
- it { expect(procedure.reload.api_entreprise_token).to eq(token) }
+ it do
+ expect(flash.alert).to be_nil
+ expect(flash.notice).to eq('Le jeton a bien été mis à jour')
+ expect(procedure.reload.api_entreprise_token).to eq(token)
+ end
end
context 'when jeton is invalid' do
let(:token_is_valid) { false }
- it { expect(flash.alert).to eq("Mise à jour impossible : le jeton n’est pas valide") }
- it { expect(flash.notice).to be_nil }
- it { expect(procedure.reload.api_entreprise_token).not_to eq(token) }
+ it do
+ expect(flash.alert).to eq("Mise à jour impossible : le jeton n’est pas valide")
+ expect(flash.notice).to be_nil
+ expect(procedure.reload.api_entreprise_token).not_to eq(token)
+ end
end
context 'when jeton is not a jwt' do
let(:token) { "invalid" }
let(:token_is_valid) { true } # just to check jwt format by procedure model
- it { expect(flash.alert).to eq("Mise à jour impossible : le jeton n’est pas valide") }
- it { expect(flash.notice).to be_nil }
- it { expect(procedure.reload.api_entreprise_token).not_to eq(token) }
+ it do
+ expect(flash.alert).to eq("Mise à jour impossible : le jeton n’est pas valide")
+ expect(flash.notice).to be_nil
+ expect(procedure.reload.api_entreprise_token).not_to eq(token)
+ end
end
end
@@ -1068,7 +1072,7 @@ describe Administrateurs::ProceduresController, type: :controller do
describe 'PUT #publish' do
let(:procedure) { create(:procedure, administrateur: admin, lien_site_web: lien_site_web) }
let(:procedure2) { create(:procedure, :published, administrateur: admin, lien_site_web: lien_site_web) }
- let(:procedure3) { create(:procedure, :published, lien_site_web: lien_site_web) }
+ let(:procedure3) { create(:procedure, :published, :new_administrateur, lien_site_web: lien_site_web) }
let(:lien_site_web) { 'http://some.administration/' }
subject(:perform_request) { put :publish, params: { procedure_id: procedure.id, path: path, lien_site_web: lien_site_web } }
@@ -1221,10 +1225,12 @@ describe Administrateurs::ProceduresController, type: :controller do
context 'when admin is unknow' do
let(:email_admin) { 'plop' }
- it { expect(subject.status).to eq 302 }
- it { expect(response.body).to include(admin_procedure_transfert_path(procedure.id)) }
- it { expect(flash[:alert]).to be_present }
- it { expect(flash[:alert]).to eq("Envoi vers #{email_admin} impossible : cet administrateur n’existe pas") }
+ it do
+ expect(subject.status).to eq 302
+ expect(response.body).to include(admin_procedure_transfert_path(procedure.id))
+ expect(flash[:alert]).to be_present
+ expect(flash[:alert]).to eq("Envoi vers #{email_admin} impossible : cet administrateur n’existe pas")
+ end
end
context 'when admin is known' do
@@ -1233,8 +1239,10 @@ describe Administrateurs::ProceduresController, type: :controller do
context "and its email address is correct" do
let(:email_admin) { 'new_admin@admin.com' }
- it { expect(subject.status).to eq 302 }
- it { expect { subject }.to change(new_admin.procedures, :count).by(1) }
+ it do
+ expect { subject }.to change(new_admin.procedures, :count).by(1)
+ expect(subject.status).to eq 302
+ end
it "should create a new service" do
subject
@@ -1245,8 +1253,10 @@ describe Administrateurs::ProceduresController, type: :controller do
context 'when admin is know but its email was not downcased' do
let(:email_admin) { "NEW_admin@adMIN.com" }
- it { expect(subject.status).to eq 302 }
- it { expect { subject }.to change(Procedure, :count).by(1) }
+ it do
+ expect { subject }.to change(Procedure, :count).by(1)
+ expect(subject.status).to eq 302
+ end
end
describe "correctly assigns the new admin" do
@@ -1308,8 +1318,10 @@ describe Administrateurs::ProceduresController, type: :controller do
procedure.reload
end
- it { expect(procedure.discarded?).to be_falsy }
- it { expect(procedure.dossiers.first.hidden_by_administration_at).to be_nil }
+ it do
+ expect(procedure.discarded?).to be_falsy
+ expect(procedure.dossiers.first.hidden_by_administration_at).to be_nil
+ end
end
end
end
diff --git a/spec/controllers/administrateurs/services_controller_spec.rb b/spec/controllers/administrateurs/services_controller_spec.rb
index 56f487e23..dae450abb 100644
--- a/spec/controllers/administrateurs/services_controller_spec.rb
+++ b/spec/controllers/administrateurs/services_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::ServicesController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create(:procedure, administrateur: admin) }
describe '#create' do
@@ -159,7 +159,7 @@ describe Administrateurs::ServicesController, type: :controller do
end
describe "#index" do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
before do
sign_in(admin.user)
diff --git a/spec/controllers/administrateurs/sources_particulier_controller_spec.rb b/spec/controllers/administrateurs/sources_particulier_controller_spec.rb
index e56c3ced7..9ae18eaae 100644
--- a/spec/controllers/administrateurs/sources_particulier_controller_spec.rb
+++ b/spec/controllers/administrateurs/sources_particulier_controller_spec.rb
@@ -1,5 +1,5 @@
describe Administrateurs::SourcesParticulierController, type: :controller do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
before { sign_in(admin.user) }
diff --git a/spec/controllers/api/v1/dossiers_controller_spec.rb b/spec/controllers/api/v1/dossiers_controller_spec.rb
index a5ace72c6..b37287182 100644
--- a/spec/controllers/api/v1/dossiers_controller_spec.rb
+++ b/spec/controllers/api/v1/dossiers_controller_spec.rb
@@ -1,8 +1,8 @@
describe API::V1::DossiersController do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:token) { APIToken.generate(admin)[1] }
let(:procedure) { create(:procedure, :with_type_de_champ, :with_type_de_champ_private, administrateur: admin) }
- let(:wrong_procedure) { create(:procedure) }
+ let(:wrong_procedure) { create(:procedure, :new_administrateur) }
it { expect(described_class).to be < APIController }
diff --git a/spec/controllers/api/v2/base_controller_spec.rb b/spec/controllers/api/v2/base_controller_spec.rb
index defee8a46..4a798c4b7 100644
--- a/spec/controllers/api/v2/base_controller_spec.rb
+++ b/spec/controllers/api/v2/base_controller_spec.rb
@@ -1,6 +1,6 @@
describe API::V2::BaseController, type: :controller do
describe 'ensure_authorized_network and token_is_not_expired' do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:token_bearer_couple) { APIToken.generate(admin) }
let(:token) { token_bearer_couple[0] }
let(:bearer) { token_bearer_couple[1] }
diff --git a/spec/controllers/api/v2/graphql_controller_spec.rb b/spec/controllers/api/v2/graphql_controller_spec.rb
index 4805df781..0d6f109fa 100644
--- a/spec/controllers/api/v2/graphql_controller_spec.rb
+++ b/spec/controllers/api/v2/graphql_controller_spec.rb
@@ -1,5 +1,5 @@
describe API::V2::GraphqlController do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:generated_token) { APIToken.generate(admin) }
let(:api_token) { generated_token.first }
let(:token) { generated_token.second }
diff --git a/spec/controllers/api/v2/graphql_controller_stored_queries_spec.rb b/spec/controllers/api/v2/graphql_controller_stored_queries_spec.rb
index a42d90210..dfd5ed005 100644
--- a/spec/controllers/api/v2/graphql_controller_stored_queries_spec.rb
+++ b/spec/controllers/api/v2/graphql_controller_stored_queries_spec.rb
@@ -1,5 +1,5 @@
describe API::V2::GraphqlController do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:generated_token) { APIToken.generate(admin) }
let(:api_token) { generated_token.first }
let(:token) { generated_token.second }
@@ -1386,7 +1386,7 @@ describe API::V2::GraphqlController do
}
context 'when unauthorized' do
- let(:dossier) { create(:dossier, :en_construction, :with_individual) }
+ let(:dossier) { create(:dossier, :en_construction, :with_individual, procedure: create(:procedure, :new_administrateur, :for_individual)) }
it {
expect(message.discarded?).to be_falsey
diff --git a/spec/controllers/api_controller_spec.rb b/spec/controllers/api_controller_spec.rb
index 85762b95b..1e9af9ea6 100644
--- a/spec/controllers/api_controller_spec.rb
+++ b/spec/controllers/api_controller_spec.rb
@@ -41,7 +41,7 @@ describe APIController, type: :controller do
end
describe 'ensure_authorized_network and token is not expired' do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:token_bearer_couple) { APIToken.generate(admin) }
let(:token) { token_bearer_couple[0] }
let(:bearer) { token_bearer_couple[1] }
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index 5d30e90aa..fee76374c 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -70,7 +70,7 @@ describe ApplicationController, type: :controller do
context 'when someone is logged as a user, instructeur, administrateur and super_admin' do
let(:current_user) { create(:user) }
let(:current_instructeur) { create(:instructeur) }
- let(:current_administrateur) { create(:administrateur) }
+ let(:current_administrateur) { administrateurs(:default_admin) }
let(:current_super_admin) { create(:super_admin) }
it do
diff --git a/spec/controllers/data_sources/chorus_controller_spec.rb b/spec/controllers/data_sources/chorus_controller_spec.rb
index 241f133e4..3eb444cc3 100644
--- a/spec/controllers/data_sources/chorus_controller_spec.rb
+++ b/spec/controllers/data_sources/chorus_controller_spec.rb
@@ -1,5 +1,5 @@
describe DataSources::ChorusController do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
render_views
diff --git a/spec/controllers/gestionnaires/groupe_gestionnaire_administrateurs_controller_spec.rb b/spec/controllers/gestionnaires/groupe_gestionnaire_administrateurs_controller_spec.rb
index c5491297f..c460b9994 100644
--- a/spec/controllers/gestionnaires/groupe_gestionnaire_administrateurs_controller_spec.rb
+++ b/spec/controllers/gestionnaires/groupe_gestionnaire_administrateurs_controller_spec.rb
@@ -47,7 +47,7 @@ describe Gestionnaires::GroupeGestionnaireAdministrateursController, type: :cont
end
context 'when administrateur has some procedure' do
- let(:administrateur_with_procedure) { create(:administrateur) }
+ let(:administrateur_with_procedure) { administrateurs(:default_admin) }
let!(:procedure) { create(:procedure_with_dossiers, administrateur: administrateur_with_procedure) }
before do
groupe_gestionnaire.administrateurs << administrateur_with_procedure
@@ -59,7 +59,7 @@ describe Gestionnaires::GroupeGestionnaireAdministrateursController, type: :cont
end
context 'when administrateur is not in the groupe_gestionnaire' do
- let(:other_administrateur) { create(:administrateur) }
+ let(:other_administrateur) { administrateurs(:default_admin) }
before { destroy(other_administrateur) }
it { expect(groupe_gestionnaire.reload.administrateurs.count).to eq(1) }
diff --git a/spec/controllers/gestionnaires/groupe_gestionnaire_commentaires_controller_spec.rb b/spec/controllers/gestionnaires/groupe_gestionnaire_commentaires_controller_spec.rb
index 3da31765d..001531910 100644
--- a/spec/controllers/gestionnaires/groupe_gestionnaire_commentaires_controller_spec.rb
+++ b/spec/controllers/gestionnaires/groupe_gestionnaire_commentaires_controller_spec.rb
@@ -1,6 +1,6 @@
describe Gestionnaires::GroupeGestionnaireCommentairesController, type: :controller do
let(:gestionnaire) { create(:gestionnaire).tap { _1.user.update(last_sign_in_at: Time.zone.now) } }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire], administrateurs: [administrateur]) }
let!(:commentaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur) }
diff --git a/spec/controllers/instructeurs/dossiers_controller_spec.rb b/spec/controllers/instructeurs/dossiers_controller_spec.rb
index 3ee08fbf8..47cadd89c 100644
--- a/spec/controllers/instructeurs/dossiers_controller_spec.rb
+++ b/spec/controllers/instructeurs/dossiers_controller_spec.rb
@@ -2,11 +2,10 @@ describe Instructeurs::DossiersController, type: :controller do
render_views
let(:instructeur) { create(:instructeur) }
- let(:administrateur) { create(:administrateur) }
let(:administration) { create(:administration) }
let(:instructeurs) { [instructeur] }
let(:procedure) { create(:procedure, :published, :for_individual, instructeurs: instructeurs) }
- let(:procedure_accuse_lecture) { create(:procedure, :published, :for_individual, :accuse_lecture, instructeurs: instructeurs) }
+ let(:procedure_accuse_lecture) { create(:procedure, :published, :for_individual, :accuse_lecture, :new_administrateur, instructeurs: instructeurs) }
let(:dossier) { create(:dossier, :en_construction, :with_individual, procedure: procedure) }
let(:dossier_accuse_lecture) { create(:dossier, :en_construction, :with_individual, procedure: procedure_accuse_lecture) }
let(:dossier_for_tiers) { create(:dossier, :en_construction, :for_tiers_with_notification, procedure: procedure) }
@@ -1309,7 +1308,7 @@ describe Instructeurs::DossiersController, type: :controller do
describe '#reaffectation' do
let!(:gi_2) { GroupeInstructeur.create(label: 'deuxième groupe', procedure: procedure) }
let!(:gi_3) { GroupeInstructeur.create(label: 'troisième groupe', procedure: procedure) }
- let!(:dossier) { create(:dossier, :en_construction, procedure: procedure, groupe_instructeur: procedure.groupe_instructeurs.first) }
+ let!(:dossier) { create(:dossier, :en_construction, procedure: procedure, groupe_instructeur: procedure.groupe_instructeurs.reorder(:id).first) }
before do
post :reaffectation,
@@ -1361,8 +1360,8 @@ describe Instructeurs::DossiersController, type: :controller do
describe '#personnes_impliquees' do
let(:routed_procedure) { create(:procedure, :routee, :published, :for_individual) }
- let(:gi_1) { routed_procedure.groupe_instructeurs.first }
- let(:gi_2) { routed_procedure.groupe_instructeurs.last }
+ let(:gi_1) { routed_procedure.groupe_instructeurs.reorder(:id).first }
+ let(:gi_2) { routed_procedure.groupe_instructeurs.reorder(:id).last }
let(:dossier) { create(:dossier, :en_construction, :with_individual, procedure: routed_procedure, groupe_instructeur: gi_1) }
let(:new_instructeur) { create(:instructeur) }
diff --git a/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb b/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb
index 64707f699..bc5bf8e2b 100644
--- a/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb
+++ b/spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb
@@ -32,34 +32,38 @@ describe Instructeurs::GroupeInstructeursController, type: :controller do
end
context 'when i am an instructeur of the procedure and instructeurs_self_management_enabled is true' do
- let(:procedure) { create(:procedure, :published, administrateurs: [create(:administrateur)], instructeurs_self_management_enabled: true) }
+ let(:procedure) { create(:procedure, :published, instructeurs_self_management_enabled: true) }
before { get :index, params: { procedure_id: procedure.id } }
- context 'when a procedure has multiple groups' do
- it { expect(response).to have_http_status(:ok) }
- it { expect(response.body).to include(gi_1_2.label) }
- it { expect(response.body).not_to include(gi_1_1.label) }
- it { expect(response.body).not_to include(gi_2_2.label) }
+ it 'when a procedure has multiple groups' do
+ expect(response).to have_http_status(:ok)
+ expect(response.body).to include(gi_1_2.label)
+ expect(response.body).not_to include(gi_1_1.label)
+ expect(response.body).not_to include(gi_2_2.label)
end
end
context 'when i am an instructor of the procedure, and instructeurs_self_management_enabled is false' do
- let(:procedure) { create(:procedure, :published, administrateurs: [create(:administrateur)], instructeurs_self_management_enabled: false) }
+ let(:procedure) { create(:procedure, :published, :new_administrateur, instructeurs_self_management_enabled: false) }
before { get :index, params: { procedure_id: procedure.id } }
- it { expect(response).to have_http_status(:redirect) }
- it { expect(flash.alert).to eq("Vous n’avez pas le droit de gérer les instructeurs de cette démarche") }
+ it "works" do
+ expect(response).to have_http_status(:redirect)
+ expect(flash.alert).to eq("Vous n’avez pas le droit de gérer les instructeurs de cette démarche")
+ end
end
context 'i am an instructor, not on the procedure' do
- let(:procedure) { create(:procedure, :published, administrateurs: [create(:administrateur)], instructeurs_self_management_enabled: true) }
+ let(:procedure) { create(:procedure, :published, :new_administrateur, instructeurs_self_management_enabled: true) }
before do
sign_in(create(:instructeur).user)
get :index, params: { procedure_id: procedure.id }
end
- it { expect(response).to have_http_status(:redirect) }
- it { expect(flash.alert).to eq("Vous n’avez pas accès à cette démarche") }
+ it "works" do
+ expect(response).to have_http_status(:redirect)
+ expect(flash.alert).to eq("Vous n’avez pas accès à cette démarche")
+ end
end
end
@@ -85,24 +89,30 @@ describe Instructeurs::GroupeInstructeursController, type: :controller do
let(:new_instructeur_email) { 'new_instructeur@mail.com' }
before { subject }
- it { expect(gi_1_2.instructeurs.map(&:email)).to include(new_instructeur_email) }
- it { expect(flash.notice).to be_present }
- it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2)) }
+ it "works" do
+ expect(gi_1_2.instructeurs.map(&:email)).to include(new_instructeur_email)
+ expect(flash.notice).to be_present
+ expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2))
+ end
end
context 'of an instructeur already in the group' do
let(:new_instructeur_email) { instructeur.email }
before { subject }
- it { expect(flash.alert).to be_present }
- it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2)) }
+ it "works" do
+ expect(flash.alert).to be_present
+ expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2))
+ end
end
context 'invalid email' do
let(:new_instructeur_email) { 'invalid' }
- it { subject; expect(flash.alert).to include(new_instructeur_email) }
- it { expect { subject }.not_to enqueue_email }
+ it "works" do
+ expect { subject }.not_to enqueue_email
+ expect(flash.alert).to include(new_instructeur_email)
+ end
end
end
@@ -128,10 +138,12 @@ describe Instructeurs::GroupeInstructeursController, type: :controller do
context 'when there are many instructeurs' do
before { remove_instructeur(new_instructeur) }
- it { expect(gi_1_1.instructeurs).to include(instructeur) }
- it { expect(gi_1_1.reload.instructeurs.count).to eq(1) }
- it { expect(new_instructeur.reload.follows.count).to eq(0) }
- it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_1)) }
+ it "works" do
+ expect(gi_1_1.instructeurs).to include(instructeur)
+ expect(gi_1_1.reload.instructeurs.count).to eq(1)
+ expect(new_instructeur.reload.follows.count).to eq(0)
+ expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_1))
+ end
end
context 'when there is only one instructeur' do
@@ -140,10 +152,12 @@ describe Instructeurs::GroupeInstructeursController, type: :controller do
remove_instructeur(instructeur)
end
- it { expect(gi_1_1.instructeurs).to include(instructeur) }
- it { expect(gi_1_1.instructeurs.count).to eq(1) }
- it { expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un instructeur dans le groupe') }
- it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_1)) }
+ it "works" do
+ expect(gi_1_1.instructeurs).to include(instructeur)
+ expect(gi_1_1.instructeurs.count).to eq(1)
+ expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un instructeur dans le groupe')
+ expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_1))
+ end
end
end
@@ -161,7 +175,9 @@ describe Instructeurs::GroupeInstructeursController, type: :controller do
}
end
- it { expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2)) }
- it { expect(gi_1_2.reload.signature).to be_attached }
+ it "works" do
+ expect(response).to redirect_to(instructeur_groupe_path(procedure, gi_1_2))
+ expect(gi_1_2.reload.signature).to be_attached
+ end
end
end
diff --git a/spec/controllers/manager/administrateurs_controller_spec.rb b/spec/controllers/manager/administrateurs_controller_spec.rb
index 845813cf5..9135f0ac3 100644
--- a/spec/controllers/manager/administrateurs_controller_spec.rb
+++ b/spec/controllers/manager/administrateurs_controller_spec.rb
@@ -1,6 +1,6 @@
describe Manager::AdministrateursController, type: :controller do
let(:super_admin) { create(:super_admin) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before do
sign_in super_admin
diff --git a/spec/controllers/manager/procedures_controller_spec.rb b/spec/controllers/manager/procedures_controller_spec.rb
index 5e4270aa2..008c357bf 100644
--- a/spec/controllers/manager/procedures_controller_spec.rb
+++ b/spec/controllers/manager/procedures_controller_spec.rb
@@ -1,7 +1,7 @@
describe Manager::ProceduresController, type: :controller do
let(:super_admin) { create :super_admin }
let(:administrateur) { create(:administrateur, email: super_admin.email) }
- let(:autre_administrateur) { create(:administrateur) }
+ let(:autre_administrateur) { administrateurs(:default_admin) }
before { sign_in super_admin }
describe '#whitelist' do
diff --git a/spec/controllers/root_controller_spec.rb b/spec/controllers/root_controller_spec.rb
index 06981a314..3764246dd 100644
--- a/spec/controllers/root_controller_spec.rb
+++ b/spec/controllers/root_controller_spec.rb
@@ -34,7 +34,7 @@ describe RootController, type: :controller do
context 'when Administrateur is connected' do
before do
- sign_in(create(:administrateur).user)
+ sign_in(administrateurs(:default_admin).user)
end
it { expect(subject).to redirect_to(admin_procedures_path) }
diff --git a/spec/factories/administrateurs_procedure.rb b/spec/factories/administrateurs_procedure.rb
index 5a12b3d42..66a6a7f91 100644
--- a/spec/factories/administrateurs_procedure.rb
+++ b/spec/factories/administrateurs_procedure.rb
@@ -1,6 +1,6 @@
FactoryBot.define do
factory :administrateurs_procedure do
- association :administrateur
+ administrateur { Administrateur.find_by(user: { email: "default_admin@admin.com" }) }
association :procedure
end
end
diff --git a/spec/factories/batch_operation.rb b/spec/factories/batch_operation.rb
index 27742eebb..5840051bc 100644
--- a/spec/factories/batch_operation.rb
+++ b/spec/factories/batch_operation.rb
@@ -9,7 +9,7 @@ FactoryBot.define do
trait :archiver do
operation { BatchOperation.operations.fetch(:archiver) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :accepte, procedure: procedure),
create(:dossier, :with_individual, :refuse, procedure: procedure),
@@ -21,7 +21,7 @@ FactoryBot.define do
trait :desarchiver do
operation { BatchOperation.operations.fetch(:desarchiver) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :accepte, procedure: procedure, archived: true),
create(:dossier, :with_individual, :refuse, procedure: procedure, archived: true),
@@ -33,7 +33,7 @@ FactoryBot.define do
trait :passer_en_instruction do
operation { BatchOperation.operations.fetch(:passer_en_instruction) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :en_construction, procedure: procedure),
create(:dossier, :with_individual, :en_construction, procedure: procedure)
@@ -44,7 +44,7 @@ FactoryBot.define do
trait :repousser_expiration do
operation { BatchOperation.operations.fetch(:repousser_expiration) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :accepte, procedure: procedure, processed_at: 12.months.ago),
create(:dossier, :with_individual, :accepte, procedure: procedure, processed_at: 12.months.ago)
@@ -55,7 +55,7 @@ FactoryBot.define do
trait :accepter do
operation { BatchOperation.operations.fetch(:accepter) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :en_instruction, procedure: procedure),
create(:dossier, :with_individual, :en_instruction, procedure: procedure)
@@ -66,7 +66,7 @@ FactoryBot.define do
trait :refuser do
operation { BatchOperation.operations.fetch(:refuser) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :en_instruction, procedure: procedure),
create(:dossier, :with_individual, :en_instruction, procedure: procedure)
@@ -77,7 +77,7 @@ FactoryBot.define do
trait :classer_sans_suite do
operation { BatchOperation.operations.fetch(:classer_sans_suite) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :en_instruction, procedure: procedure),
create(:dossier, :with_individual, :en_instruction, procedure: procedure)
@@ -88,7 +88,7 @@ FactoryBot.define do
trait :follow do
operation { BatchOperation.operations.fetch(:follow) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :en_instruction, procedure: procedure),
create(:dossier, :with_individual, :en_construction, procedure: procedure)
@@ -99,7 +99,7 @@ FactoryBot.define do
trait :unfollow do
operation { BatchOperation.operations.fetch(:unfollow) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :en_instruction, procedure: procedure, followers_instructeurs: procedure.instructeurs),
create(:dossier, :with_individual, :en_construction, procedure: procedure, followers_instructeurs: procedure.instructeurs)
@@ -110,7 +110,7 @@ FactoryBot.define do
trait :restaurer do
operation { BatchOperation.operations.fetch(:restaurer) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :accepte, procedure: procedure, hidden_by_administration_at: Time.zone.now),
create(:dossier, :with_individual, :refuse, procedure: procedure, hidden_by_administration_at: Time.zone.now)
@@ -121,7 +121,7 @@ FactoryBot.define do
trait :repasser_en_construction do
operation { BatchOperation.operations.fetch(:repasser_en_construction) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :en_instruction, procedure: procedure),
create(:dossier, :with_individual, :en_instruction, procedure: procedure)
@@ -132,7 +132,7 @@ FactoryBot.define do
trait :supprimer do
operation { BatchOperation.operations.fetch(:supprimer) }
after(:build) do |batch_operation, evaluator|
- procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur], administrateurs: [create(:administrateur)])
+ procedure = create(:simple_procedure, :published, instructeurs: [evaluator.invalid_instructeur.presence || batch_operation.instructeur])
batch_operation.dossiers = [
create(:dossier, :with_individual, :accepte, procedure: procedure),
create(:dossier, :with_individual, :refuse, procedure: procedure)
diff --git a/spec/factories/procedure.rb b/spec/factories/procedure.rb
index 6799dbeda..7acbeaae7 100644
--- a/spec/factories/procedure.rb
+++ b/spec/factories/procedure.rb
@@ -17,10 +17,14 @@ FactoryBot.define do
sva_svr { {} }
groupe_instructeurs { [association(:groupe_instructeur, :default, procedure: instance, strategy: :build)] }
- administrateurs { administrateur.present? ? [administrateur] : [association(:administrateur)] }
+ administrateurs { [administrateur] }
+
+ trait(:new_administrateur) do
+ administrateur { create(:administrateur) }
+ end
transient do
- administrateur {}
+ administrateur { Administrateur.find_by(user: { email: "default_admin@admin.com" }) }
instructeurs { [] }
types_de_champ_public { [] }
types_de_champ_private { [] }
@@ -79,10 +83,8 @@ FactoryBot.define do
end
after(:create) do |procedure, evaluator|
- user = create(:user)
- evaluator.dossiers_count.times do
- create(:dossier, procedure: procedure, user: user)
- end
+ user = User.find_by(email: "default_user@user.com")
+ create_list(:dossier, evaluator.dossiers_count, procedure: procedure, user: user)
end
end
diff --git a/spec/fixtures/administrateurs.yml b/spec/fixtures/administrateurs.yml
new file mode 100644
index 000000000..80bca9bf0
--- /dev/null
+++ b/spec/fixtures/administrateurs.yml
@@ -0,0 +1,2 @@
+default_admin:
+ user: default_user_admin
diff --git a/spec/fixtures/instructeurs.yml b/spec/fixtures/instructeurs.yml
new file mode 100644
index 000000000..d93f77aab
--- /dev/null
+++ b/spec/fixtures/instructeurs.yml
@@ -0,0 +1,3 @@
+default_instructeur_admin:
+ user: default_user_admin
+ bypass_email_login_token: true
diff --git a/spec/fixtures/users.yml b/spec/fixtures/users.yml
new file mode 100644
index 000000000..85157ec74
--- /dev/null
+++ b/spec/fixtures/users.yml
@@ -0,0 +1,9 @@
+default_user:
+ email: default_user@user.com
+ encrypted_password: <%= Devise::Encryptor.digest(User, '{My-$3cure-p4ssWord}') %>
+ confirmed_at: <%= Time.current.to_s(:db) %>
+
+default_user_admin:
+ email: default_admin@admin.com
+ encrypted_password: <%= Devise::Encryptor.digest(User, '{My-$3cure-p4ssWord}') %>
+ confirmed_at: <%= Time.current.to_s(:db) %>
diff --git a/spec/graphql/annotation_spec.rb b/spec/graphql/annotation_spec.rb
index 0852f9c05..324a0d09d 100644
--- a/spec/graphql/annotation_spec.rb
+++ b/spec/graphql/annotation_spec.rb
@@ -1,5 +1,5 @@
RSpec.describe Mutations::DossierModifierAnnotation, type: :graphql do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create(:procedure, :published, :for_individual, types_de_champ_private: [{ type: :repetition, children: [{ libelle: 'Nom' }, { type: :integer_number, libelle: 'Age' }] }, {}], administrateurs: [admin]) }
let(:dossiers) { [] }
let(:instructeur) { create(:instructeur, followed_dossiers: dossiers) }
diff --git a/spec/graphql/demarche_spec.rb b/spec/graphql/demarche_spec.rb
index 9c181c6ba..c5543ff49 100644
--- a/spec/graphql/demarche_spec.rb
+++ b/spec/graphql/demarche_spec.rb
@@ -1,5 +1,5 @@
RSpec.describe Types::DemarcheType, type: :graphql do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:query) { '' }
let(:context) { { procedure_ids: admin.procedure_ids } }
let(:variables) { {} }
diff --git a/spec/jobs/cron/administrateur_activate_before_expiration_job_spec.rb b/spec/jobs/cron/administrateur_activate_before_expiration_job_spec.rb
index 0f6334efb..408bfb0e3 100644
--- a/spec/jobs/cron/administrateur_activate_before_expiration_job_spec.rb
+++ b/spec/jobs/cron/administrateur_activate_before_expiration_job_spec.rb
@@ -1,6 +1,6 @@
RSpec.describe Cron::AdministrateurActivateBeforeExpirationJob, type: :job do
describe 'perform' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:user) { administrateur.user }
let(:mailer_double) { double('mailer', deliver_later: true) }
diff --git a/spec/jobs/cron/purge_manager_administrateur_sessions_job_spec.rb b/spec/jobs/cron/purge_manager_administrateur_sessions_job_spec.rb
index cff2eaff4..b058b09da 100644
--- a/spec/jobs/cron/purge_manager_administrateur_sessions_job_spec.rb
+++ b/spec/jobs/cron/purge_manager_administrateur_sessions_job_spec.rb
@@ -8,14 +8,14 @@ RSpec.describe Cron::PurgeManagerAdministrateurSessionsJob, type: :job do
context "with an inactive administrateur" do
before do
AdministrateursProcedure.create(procedure: procedure, administrateur: administrateur, manager: true)
- expect(AdministrateursProcedure.where(manager: true).count).to eq(1)
- expect(AdministrateursProcedure.count).to eq(2)
- subject
end
it {
- expect(AdministrateursProcedure.where(manager: true).count).to eq(0)
- expect(AdministrateursProcedure.count).to eq(1)
+ expect(AdministrateursProcedure.where(procedure:, manager: true).count).to eq(1)
+ expect(AdministrateursProcedure.where(procedure:).count).to eq(2)
+ subject
+ expect(AdministrateursProcedure.where(procedure:, manager: true).count).to eq(0)
+ expect(AdministrateursProcedure.where(procedure:).count).to eq(1)
}
end
end
diff --git a/spec/jobs/cron/send_api_token_expiration_notice_job_spec.rb b/spec/jobs/cron/send_api_token_expiration_notice_job_spec.rb
index ae2af0421..350bc0368 100644
--- a/spec/jobs/cron/send_api_token_expiration_notice_job_spec.rb
+++ b/spec/jobs/cron/send_api_token_expiration_notice_job_spec.rb
@@ -1,6 +1,6 @@
RSpec.describe Cron::SendAPITokenExpirationNoticeJob, type: :job do
describe 'perform' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let!(:token) { APIToken.generate(administrateur).first }
let(:mailer_double) { double('mailer', deliver_later: true) }
let(:today) { Date.new(2018, 01, 01) }
diff --git a/spec/jobs/cron/weekly_overview_job_spec.rb b/spec/jobs/cron/weekly_overview_job_spec.rb
index 9e1041e5a..a2338a331 100644
--- a/spec/jobs/cron/weekly_overview_job_spec.rb
+++ b/spec/jobs/cron/weekly_overview_job_spec.rb
@@ -21,8 +21,10 @@ RSpec.describe Cron::WeeklyOverviewJob, type: :job do
run_job
end
- it { expect(InstructeurMailer).to have_received(:last_week_overview).with(instructeur) }
- it { expect(mailer_double).to have_received(:deliver_later) }
+ it do
+ expect(InstructeurMailer).to have_received(:last_week_overview).with(instructeur)
+ expect(mailer_double).to have_received(:deliver_later).at_least(1).times
+ end
end
context 'with one instructeur with no overviews' do
diff --git a/spec/lib/active_storage/downloadable_file_spec.rb b/spec/lib/active_storage/downloadable_file_spec.rb
index 7e0031a36..0526bc047 100644
--- a/spec/lib/active_storage/downloadable_file_spec.rb
+++ b/spec/lib/active_storage/downloadable_file_spec.rb
@@ -1,6 +1,6 @@
describe ActiveStorage::DownloadableFile do
let(:dossier) { create(:dossier, :en_construction) }
- let(:user_profile) { create(:administrateur) }
+ let(:user_profile) { administrateurs(:default_admin) }
let(:dossiers) { Dossier.where(id: dossier.id) }
subject(:list) { ActiveStorage::DownloadableFile.create_list_from_dossiers(user_profile:, dossiers:) }
diff --git a/spec/lib/tasks/clean_services_spec.rb b/spec/lib/tasks/clean_services_spec.rb
index 452e658aa..4eed0a8d0 100644
--- a/spec/lib/tasks/clean_services_spec.rb
+++ b/spec/lib/tasks/clean_services_spec.rb
@@ -24,7 +24,7 @@ describe 'service tasks' do
describe 'service:notify_no_siret' do
let(:task) { 'service:email_no_siret' }
let!(:procedure_without_siret_service) { create(:procedure, :published, service: service, administrateur: administrateur) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:service) do
s = build(:service, siret: nil, administrateur: administrateur)
s.save(validate: false)
diff --git a/spec/lib/tasks/re_routing_dossiers_spec.rb b/spec/lib/tasks/re_routing_dossiers_spec.rb
index 5721bad1a..dd31215b5 100644
--- a/spec/lib/tasks/re_routing_dossiers_spec.rb
+++ b/spec/lib/tasks/re_routing_dossiers_spec.rb
@@ -2,7 +2,7 @@ describe 're_routing_dossiers' do
describe 'run' do
include Logic
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:procedure) { create(:procedure, types_de_champ_public: [{ type: :departements, libelle: 'Votre département' }], administrateurs: [admin]) }
let(:dossier1) { create(:dossier, :en_construction, :with_populated_champs, procedure: procedure) }
let!(:dossier2) { create(:dossier, :en_construction, :with_populated_champs, procedure: procedure) }
diff --git a/spec/lib/tasks/support_spec.rb b/spec/lib/tasks/support_spec.rb
index dbc682f62..86404ebb2 100644
--- a/spec/lib/tasks/support_spec.rb
+++ b/spec/lib/tasks/support_spec.rb
@@ -10,7 +10,7 @@ describe 'support' do
after { rake_task.reenable }
# the admin to remove
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
# the super admin doing the removal
let(:super_admin) { create(:super_admin) }
diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb
index e6222596a..b164b4e39 100644
--- a/spec/mailers/notification_mailer_spec.rb
+++ b/spec/mailers/notification_mailer_spec.rb
@@ -1,5 +1,5 @@
RSpec.describe NotificationMailer, type: :mailer do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:user) { create(:user) }
let(:procedure) { create(:simple_procedure, :with_service) }
diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb
index 0dc7a9212..50f04f1a8 100644
--- a/spec/mailers/user_mailer_spec.rb
+++ b/spec/mailers/user_mailer_spec.rb
@@ -114,7 +114,7 @@ RSpec.describe UserMailer, type: :mailer do
end
context 'administrateur' do
- let(:role) { create(:administrateur) }
+ let(:role) { administrateurs(:default_admin) }
it 'sends email with correct links to administrateur' do
expect(subject.to).to eq([role.user.email])
expect(subject.body).to have_link('Consulter mes archives', href: admin_procedure_archives_url(procedure, host: ENV.fetch("APP_HOST_LEGACY")))
@@ -123,7 +123,7 @@ RSpec.describe UserMailer, type: :mailer do
end
context 'when perform_later is called' do
- let(:role) { create(:administrateur) }
+ let(:role) { administrateurs(:default_admin) }
let(:custom_queue) { 'low_priority' }
before { ENV['BULK_EMAIL_QUEUE'] = custom_queue }
it 'enqueues email is custom queue for low priority delivery' do
diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb
index 247d8526a..84c33fb4a 100644
--- a/spec/models/administrateur_spec.rb
+++ b/spec/models/administrateur_spec.rb
@@ -1,19 +1,19 @@
describe Administrateur, type: :model do
let(:administration) { create(:administration) }
- describe 'associations' do
- it { is_expected.to have_many(:commentaire_groupe_gestionnaires) }
- it { is_expected.to have_many(:archives) }
- it { is_expected.to have_many(:exports) }
- it { is_expected.to have_and_belong_to_many(:instructeurs) }
- it { is_expected.to belong_to(:groupe_gestionnaire).optional }
+ it 'define associations' do
+ is_expected.to have_many(:commentaire_groupe_gestionnaires)
+ is_expected.to have_many(:archives)
+ is_expected.to have_many(:exports)
+ is_expected.to have_and_belong_to_many(:instructeurs)
+ is_expected.to belong_to(:groupe_gestionnaire).optional
end
describe "#can_be_deleted?" do
subject { administrateur.can_be_deleted? }
context "when the administrateur's procedures have other administrateurs" do
- let!(:administrateur) { create(:administrateur) }
+ let!(:administrateur) { administrateurs(:default_admin) }
let!(:autre_administrateur) { create(:administrateur) }
let!(:procedure) { create(:procedure, administrateurs: [administrateur, autre_administrateur]) }
@@ -21,14 +21,14 @@ describe Administrateur, type: :model do
end
context "when the administrateur has a procedure with dossiers where they is the only admin" do
- let!(:administrateur) { create(:administrateur) }
+ let!(:administrateur) { administrateurs(:default_admin) }
let!(:procedure) { create(:procedure_with_dossiers, administrateurs: [administrateur]) }
it { is_expected.to be false }
end
context "when the administrateur has a procedure with dossiers and with other admins" do
- let!(:administrateur) { create(:administrateur) }
+ let!(:administrateur) { administrateurs(:default_admin) }
let!(:administrateur2) { create(:administrateur) }
let!(:procedure) { create(:procedure_with_dossiers, administrateurs: [administrateur, administrateur2]) }
@@ -36,21 +36,21 @@ describe Administrateur, type: :model do
end
context "when the administrateur has a procedure without dossiers" do
- let!(:administrateur) { create(:administrateur) }
+ let!(:administrateur) { administrateurs(:default_admin) }
let!(:procedure) { create(:procedure, administrateurs: [administrateur]) }
it { is_expected.to be true }
end
context "when the administrateur has no procedure" do
- let!(:administrateur) { create(:administrateur) }
+ let!(:administrateur) { administrateurs(:default_admin) }
it { is_expected.to be true }
end
end
describe '#merge' do
- let(:new_admin) { create(:administrateur) }
+ let(:new_admin) { administrateurs(:default_admin) }
let(:old_admin) { create(:administrateur) }
subject { new_admin.merge(old_admin) }
@@ -78,14 +78,7 @@ describe Administrateur, type: :model do
end
context 'when both admins share a procedure' do
- let(:procedure) { create(:procedure) }
-
- before do
- new_admin.procedures << procedure
- old_admin.procedures << procedure
- subject
- [new_admin, old_admin].map(&:reload)
- end
+ let(:procedure) { create(:procedure, administrateurs: [old_admin, new_admin]) }
it 'removes the procedure from the old one' do
expect(old_admin.procedures).to be_empty
@@ -185,7 +178,7 @@ describe Administrateur, type: :model do
describe 'unused' do
subject { Administrateur.unused }
- let(:new_admin) { create(:administrateur) }
+ let(:new_admin) { administrateurs(:default_admin) }
let(:unused_admin) { create(:administrateur, :with_api_token) }
before do
@@ -237,7 +230,7 @@ describe Administrateur, type: :model do
end
describe 'zones' do
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:zone1) { create(:zone) }
let(:zone2) { create(:zone) }
let!(:procedure) { create(:procedure, administrateurs: [admin], zones: [zone1, zone2]) }
@@ -250,7 +243,7 @@ describe Administrateur, type: :model do
describe "#unread_commentaires?" do
context "commentaire_seen_at is nil" do
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, gestionnaire: gestionnaire, created_at: 12.hours.ago) }
@@ -285,7 +278,7 @@ describe Administrateur, type: :model do
describe "#mark_commentaire_as_seen" do
let(:now) { Time.zone.now.beginning_of_minute }
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, created_at: 12.hours.ago) }
diff --git a/spec/models/api_token_spec.rb b/spec/models/api_token_spec.rb
index e9da709a4..adfcb322b 100644
--- a/spec/models/api_token_spec.rb
+++ b/spec/models/api_token_spec.rb
@@ -1,5 +1,5 @@
describe APIToken, type: :model do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
describe '#generate' do
let(:api_token_and_packed_token) { APIToken.generate(administrateur) }
@@ -59,7 +59,7 @@ describe APIToken, type: :model do
end
context 'but acces to a wrong procedure_id' do
- let(:forbidden_procedure) { create(:procedure) }
+ let(:forbidden_procedure) { create(:procedure, :new_administrateur) }
before do
api_token.update(allowed_procedure_ids: [forbidden_procedure.id])
diff --git a/spec/models/commentaire_groupe_gestionnaire_spec.rb b/spec/models/commentaire_groupe_gestionnaire_spec.rb
index 5379018ea..b6f2e9e49 100644
--- a/spec/models/commentaire_groupe_gestionnaire_spec.rb
+++ b/spec/models/commentaire_groupe_gestionnaire_spec.rb
@@ -9,7 +9,7 @@ describe CommentaireGroupeGestionnaire, type: :model do
let(:commentaire_groupe_gestionnaire) { create :commentaire_groupe_gestionnaire, sender: sender, gestionnaire: gestionnaire }
context 'when created by an administrateur' do
- let(:sender) { create(:administrateur) }
+ let(:sender) { administrateurs(:default_admin) }
let(:gestionnaire) { nil }
it 'set correctly sender_email and gestionnaire_email' do
expect(commentaire_groupe_gestionnaire.sender_email).to eq(sender.email)
@@ -18,7 +18,7 @@ describe CommentaireGroupeGestionnaire, type: :model do
end
context 'when answer by a gestionnaire' do
- let(:sender) { create(:administrateur) }
+ let(:sender) { administrateurs(:default_admin) }
let(:gestionnaire) { create(:gestionnaire) }
it 'set correctly sender_email and gestionnaire_email' do
@@ -34,7 +34,7 @@ describe CommentaireGroupeGestionnaire, type: :model do
let(:commentaire_groupe_gestionnaire) { build :commentaire_groupe_gestionnaire, sender: sender, gestionnaire: gestionnaire }
context 'with a commentaire_groupe_gestionnaire created by an administrateur deleted by administrateur' do
- let(:sender) { create(:administrateur) }
+ let(:sender) { administrateurs(:default_admin) }
let(:user) { sender }
let(:gestionnaire) { nil }
@@ -42,7 +42,7 @@ describe CommentaireGroupeGestionnaire, type: :model do
end
context 'with a commentaire_groupe_gestionnaire created by an administrateur deleted by gestionnaire' do
- let(:sender) { create(:administrateur) }
+ let(:sender) { administrateurs(:default_admin) }
let(:user) { create(:gestionnaire) }
let(:gestionnaire) { nil }
@@ -59,7 +59,7 @@ describe CommentaireGroupeGestionnaire, type: :model do
context 'with a commentaire_groupe_gestionnaire created by an gestionnaire deleted by administrateur' do
let(:sender) { create(:gestionnaire) }
- let(:user) { create(:administrateur) }
+ let(:user) { administrateurs(:default_admin) }
let(:gestionnaire) { sender }
it { is_expected.to be_falsy }
@@ -72,14 +72,14 @@ describe CommentaireGroupeGestionnaire, type: :model do
let(:commentaire_groupe_gestionnaire) { build :commentaire_groupe_gestionnaire, sender: sender }
context 'with a commentaire_groupe_gestionnaire created by an administrateur so sent by administrateur' do
- let(:sender) { create(:administrateur) }
+ let(:sender) { administrateurs(:default_admin) }
let(:user) { sender }
it { is_expected.to be_truthy }
end
context 'with a commentaire_groupe_gestionnaire created by an administrateur so not sent by gestionnaire' do
- let(:sender) { create(:administrateur) }
+ let(:sender) { administrateurs(:default_admin) }
let(:user) { create(:gestionnaire) }
it { is_expected.to be_falsy }
@@ -94,7 +94,7 @@ describe CommentaireGroupeGestionnaire, type: :model do
context 'with a commentaire_groupe_gestionnaire created by an gestionnaire so not sent by administrateur' do
let(:sender) { create(:gestionnaire) }
- let(:user) { create(:administrateur) }
+ let(:user) { administrateurs(:default_admin) }
it { is_expected.to be_falsy }
end
diff --git a/spec/models/concerns/initiation_procedure_concern_spec.rb b/spec/models/concerns/initiation_procedure_concern_spec.rb
index 39d19bc16..8b699955a 100644
--- a/spec/models/concerns/initiation_procedure_concern_spec.rb
+++ b/spec/models/concerns/initiation_procedure_concern_spec.rb
@@ -1,6 +1,6 @@
describe InitiationProcedureConcern do
describe '.create_initiation_procedure' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
subject { Procedure.create_initiation_procedure(administrateur) }
it "returns a new procedure" do
diff --git a/spec/models/dossier_spec.rb b/spec/models/dossier_spec.rb
index 76fb5414a..4aea8835c 100644
--- a/spec/models/dossier_spec.rb
+++ b/spec/models/dossier_spec.rb
@@ -1848,7 +1848,7 @@ describe Dossier, type: :model do
end
describe 'brouillon_expired and en_construction_expired' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:user) { administrateur.user }
let(:reason) { DeletedDossier.reasons.fetch(:user_request) }
diff --git a/spec/models/gestionnaire_spec.rb b/spec/models/gestionnaire_spec.rb
index 7fb5bbd2a..c4a3ff74e 100644
--- a/spec/models/gestionnaire_spec.rb
+++ b/spec/models/gestionnaire_spec.rb
@@ -83,18 +83,18 @@ describe Gestionnaire, type: :model do
describe "#unread_commentaires?" do
context "over three different groupe_gestionnaire" do
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, created_at: 12.hours.ago) }
let!(:follow_commentaire_groupe_gestionnaire) { create(:follow_commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, gestionnaire: gestionnaire, sender: administrateur, commentaire_seen_at: Time.zone.now) }
let(:gestionnaire_unread_commentaire_cause_never_seen) { create(:gestionnaire) }
- let(:administrateur_unread_commentaire_cause_never_seen) { create(:administrateur) }
+ let(:administrateur_unread_commentaire_cause_never_seen) { administrateurs(:default_admin) }
let(:groupe_gestionnaire_unread_commentaire_cause_never_seen) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire_unread_commentaire_cause_never_seen]) }
let!(:commentaire_groupe_gestionnaire_unread_commentaire_cause_never_seen) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire_unread_commentaire_cause_never_seen, sender: administrateur_unread_commentaire_cause_never_seen, created_at: 12.hours.ago) }
let(:gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire) { create(:gestionnaire) }
- let(:administrateur_unread_commentaire_cause_seen_at_before_last_commentaire) { create(:administrateur) }
+ let(:administrateur_unread_commentaire_cause_seen_at_before_last_commentaire) { administrateurs(:default_admin) }
let(:groupe_gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire]) }
let!(:commentaire_groupe_gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire, sender: administrateur_unread_commentaire_cause_seen_at_before_last_commentaire, created_at: 12.hours.ago) }
let!(:follow_commentaire_groupe_gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire) { create(:follow_commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire, gestionnaire: gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire, sender: administrateur_unread_commentaire_cause_seen_at_before_last_commentaire, commentaire_seen_at: 1.day.ago) }
@@ -110,7 +110,7 @@ describe Gestionnaire, type: :model do
let(:gestionnaire) { create(:gestionnaire) }
let(:gestionnaire_unread_commentaire_cause_never_seen) { create(:gestionnaire) }
let(:gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire, gestionnaire_unread_commentaire_cause_never_seen, gestionnaire_unread_commentaire_cause_seen_at_before_last_commentaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, created_at: 12.hours.ago) }
@@ -128,7 +128,7 @@ describe Gestionnaire, type: :model do
describe "#commentaire_seen_at" do
context "when already seen commentaire" do
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, created_at: 12.hours.ago) }
let!(:follow_commentaire_groupe_gestionnaire) { create(:follow_commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, gestionnaire: gestionnaire, sender: administrateur, commentaire_seen_at: Time.zone.now) }
@@ -138,7 +138,7 @@ describe Gestionnaire, type: :model do
context "when never seen commentaire" do
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, created_at: 12.hours.ago) }
@@ -150,7 +150,7 @@ describe Gestionnaire, type: :model do
context "when already seen commentaire" do
let(:now) { Time.zone.now.beginning_of_minute }
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, created_at: 12.hours.ago) }
let!(:follow_commentaire_groupe_gestionnaire) { create(:follow_commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, gestionnaire: gestionnaire, sender: administrateur, commentaire_seen_at: 12.hours.ago) }
@@ -170,7 +170,7 @@ describe Gestionnaire, type: :model do
context "when never seen commentaire" do
let(:now) { Time.zone.now.beginning_of_minute }
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire]) }
let!(:commentaire_groupe_gestionnaire) { create(:commentaire_groupe_gestionnaire, groupe_gestionnaire: groupe_gestionnaire, sender: administrateur, created_at: 12.hours.ago) }
diff --git a/spec/models/groupe_gestionnaire_spec.rb b/spec/models/groupe_gestionnaire_spec.rb
index eea888f71..fe283d210 100644
--- a/spec/models/groupe_gestionnaire_spec.rb
+++ b/spec/models/groupe_gestionnaire_spec.rb
@@ -21,7 +21,7 @@ describe GroupeGestionnaire, type: :model do
describe "#add_administrateur" do
let(:groupe_gestionnaire) { create(:groupe_gestionnaire) }
let(:gestionnaire) { create(:gestionnaire) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
subject { groupe_gestionnaire.add_administrateur(administrateur) }
diff --git a/spec/models/instructeur_spec.rb b/spec/models/instructeur_spec.rb
index d426fada2..6d8ff2a20 100644
--- a/spec/models/instructeur_spec.rb
+++ b/spec/models/instructeur_spec.rb
@@ -554,7 +554,7 @@ describe Instructeur, type: :model do
subject { instructeur.can_be_deleted? }
context 'when the instructeur is an administrateur' do
- let!(:administrateur) { create(:administrateur) }
+ let!(:administrateur) { administrateurs(:default_admin) }
let(:instructeur) { administrateur.instructeur }
it { is_expected.to be false }
@@ -817,7 +817,7 @@ describe Instructeur, type: :model do
end
context 'when the old instructeur is on on admin list' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before do
administrateur.instructeurs << old_instructeur
@@ -830,7 +830,7 @@ describe Instructeur, type: :model do
end
context 'when both are on the same admin list' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before do
administrateur.instructeurs << old_instructeur
diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb
index c29313d1c..a572cf25c 100644
--- a/spec/models/service_spec.rb
+++ b/spec/models/service_spec.rb
@@ -1,6 +1,6 @@
describe Service, type: :model do
describe 'validation' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:params) do
{
nom: 'service des jardins',
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 15ff97b5f..5bc4f467b 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -122,7 +122,7 @@ describe User, type: :model do
end
context 'with an administrateur' do
- let(:admins) { [create(:administrateur)] }
+ let(:admins) { [administrateurs(:default_admin)] }
it do
user = subject
@@ -141,7 +141,7 @@ describe User, type: :model do
end
context 'with an existing instructeur' do
- let(:old_admins) { [create(:administrateur)] }
+ let(:old_admins) { [administrateurs(:default_admin)] }
let(:admins) { [create(:administrateur)] }
let!(:instructeur) { create(:instructeur, email: 'i@mail.com', administrateurs: old_admins) }
@@ -237,7 +237,7 @@ describe User, type: :model do
describe 'invite_administrateur!' do
let(:super_admin) { create(:super_admin) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:user) { administrateur.user }
let(:mailer_double) { double('mailer', deliver_later: true) }
@@ -284,7 +284,7 @@ describe User, type: :model do
describe '#can_be_deleted?' do
let(:user) { create(:user) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:instructeur) { create(:instructeur) }
let(:expert) { create(:expert) }
@@ -383,7 +383,7 @@ describe User, type: :model do
it { expect { subject }.not_to raise_error }
it { expect { subject }.to change { FranceConnectInformation.count }.from(2).to(0) }
- it { expect { subject }.to change { User.count }.from(1).to(0) }
+ it { expect { subject }.to change { User.count }.by(-1) }
end
end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 6ba94e8a8..87dea6d0b 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -62,6 +62,8 @@ RSpec.configure do |config|
# instead of true.
config.use_transactional_fixtures = true
+ config.global_fixtures = :administrateurs, :instructeurs, :users
+
# RSpec Rails can automatically mix in different behaviours to your tests
# based on their file location, for example enabling you to call `get` and
# `post` in specs under `spec/controllers`.
diff --git a/spec/services/administrateur_deletion_service_spec.rb b/spec/services/administrateur_deletion_service_spec.rb
index c899b1b55..56a31d5b4 100644
--- a/spec/services/administrateur_deletion_service_spec.rb
+++ b/spec/services/administrateur_deletion_service_spec.rb
@@ -1,13 +1,13 @@
describe AdministrateurDeletionService do
let(:super_admin) { create(:super_admin) }
- let(:admin) { create(:administrateur) }
+ let(:admin) { administrateurs(:default_admin) }
let(:service) { create(:service, administrateur: admin) }
let(:other_admin) { create(:administrateur) }
let(:procedure) { create(:procedure, service: service, administrateurs: [admin, other_admin]) }
let(:owned_procedure_service) { create(:service, administrateur: admin) }
let(:owned_procedure) { create(:procedure, service: owned_procedure_service, administrateurs: [admin]) }
- describe '#call' do
+ describe '' do
subject { AdministrateurDeletionService.new(super_admin, admin).call }
context 'when admin can be deleted' do
diff --git a/spec/services/dossier_search_service_spec.rb b/spec/services/dossier_search_service_spec.rb
index 759f7b60b..3c2e6b1e2 100644
--- a/spec/services/dossier_search_service_spec.rb
+++ b/spec/services/dossier_search_service_spec.rb
@@ -6,8 +6,8 @@ describe DossierSearchService do
described_class.matching_dossiers(instructeur_1.dossiers, terms)
end
- let(:administrateur_1) { create(:administrateur) }
- let(:administrateur_2) { create(:administrateur) }
+ let(:administrateur_1) { administrateurs(:default_admin) }
+ let(:administrateur_2) { administrateurs(:default_admin) }
let(:instructeur_1) { create(:instructeur, administrateurs: [administrateur_1]) }
let(:instructeur_2) { create(:instructeur, administrateurs: [administrateur_2]) }
diff --git a/spec/services/expired/expired_dossiers_deletion_service_spec.rb b/spec/services/expired/expired_dossiers_deletion_service_spec.rb
index b21cd1cc8..c15deb7a3 100644
--- a/spec/services/expired/expired_dossiers_deletion_service_spec.rb
+++ b/spec/services/expired/expired_dossiers_deletion_service_spec.rb
@@ -4,7 +4,7 @@ describe Expired::DossiersDeletionService do
let(:user) { create(:user) }
let(:procedure_opts) { {} }
let(:procedure) { create(:procedure, :published, procedure_opts) }
- let(:procedure_2) { create(:procedure, :published, procedure_opts) }
+ let(:procedure_2) { create(:procedure, :published, :new_administrateur, procedure_opts) }
let(:reference_date) { Date.parse("March 8") }
let(:service) { Expired::DossiersDeletionService.new }
describe '#process_expired_dossiers_brouillon' do
diff --git a/spec/services/expired/expired_users_deletion_service_spec.rb b/spec/services/expired/expired_users_deletion_service_spec.rb
index 8ae563f7c..f18eb92a9 100644
--- a/spec/services/expired/expired_users_deletion_service_spec.rb
+++ b/spec/services/expired/expired_users_deletion_service_spec.rb
@@ -139,12 +139,12 @@ describe Expired::UsersDeletionService do
end
context 'when user is expired and has an admin' do
- let(:user) { create(:user, administrateur: create(:administrateur), last_sign_in_at: last_signed_in_expired) }
+ let(:user) { create(:user, administrateur: administrateurs(:default_admin), last_sign_in_at: last_signed_in_expired) }
it { is_expected.not_to include(user) }
end
context 'when user is expired but have a dossier' do
- let(:user) { create(:user, administrateur: create(:administrateur), last_sign_in_at: last_signed_in_expired) }
+ let(:user) { users(:default_user_admin).tap { _1.update(last_sign_in_at: last_signed_in_expired) } }
let(:dossier) { create(:dossier, :brouillon, user:, created_at: last_signed_in_expired) }
it { is_expected.not_to include(user) }
end
@@ -210,7 +210,7 @@ describe Expired::UsersDeletionService do
context 'when user is expired and has an admin' do
let(:dossier) { create(:dossier, user:, created_at: last_signed_in_expired) }
- let(:user) { create(:user, administrateur: create(:administrateur), last_sign_in_at: last_signed_in_expired) }
+ let(:user) { users(:default_user_admin).tap { _1.update(last_sign_in_at: last_signed_in_expired) } }
it { is_expected.not_to include(user) }
end
end
diff --git a/spec/services/procedure_archive_service_spec.rb b/spec/services/procedure_archive_service_spec.rb
index 40b8caa9f..02e52091b 100644
--- a/spec/services/procedure_archive_service_spec.rb
+++ b/spec/services/procedure_archive_service_spec.rb
@@ -1,7 +1,7 @@
describe ProcedureArchiveService do
let(:procedure) { create(:procedure, :published, administrateurs: [administrateur]) }
let(:instructeur) { create(:instructeur) }
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:service) { ProcedureArchiveService.new(procedure) }
let(:year) { 2020 }
let(:month) { 3 }
diff --git a/spec/system/administrateurs/procedure_administrateurs_spec.rb b/spec/system/administrateurs/procedure_administrateurs_spec.rb
index b2111cd14..78532d3a7 100644
--- a/spec/system/administrateurs/procedure_administrateurs_spec.rb
+++ b/spec/system/administrateurs/procedure_administrateurs_spec.rb
@@ -3,11 +3,11 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'Administrateurs can manage administrateurs', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
- let!(:procedure) { create(:procedure) }
- let!(:administrateurs_procedure) { create(:administrateurs_procedure, administrateur: administrateur, procedure: procedure, manager: manager) }
+ let(:administrateur) { administrateurs(:default_admin) }
+ let(:procedure) { create(:procedure) }
let(:manager) { false }
before do
+ procedure.administrateurs_procedures.update_all(manager:)
login_as administrateur.user, scope: :user
end
diff --git a/spec/system/administrateurs/procedure_archive_and_export_spec.rb b/spec/system/administrateurs/procedure_archive_and_export_spec.rb
index 096b54e0c..c40be0649 100644
--- a/spec/system/administrateurs/procedure_archive_and_export_spec.rb
+++ b/spec/system/administrateurs/procedure_archive_and_export_spec.rb
@@ -3,7 +3,7 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'Creating a new procedure', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:procedure) do
create(:procedure, :with_service, :with_instructeur,
aasm_state: :publiee,
diff --git a/spec/system/administrateurs/procedure_attestation_template_spec.rb b/spec/system/administrateurs/procedure_attestation_template_spec.rb
index ce8ae5998..480529982 100644
--- a/spec/system/administrateurs/procedure_attestation_template_spec.rb
+++ b/spec/system/administrateurs/procedure_attestation_template_spec.rb
@@ -3,7 +3,7 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'As an administrateur, I want to manage the procedure’s attestation', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:procedure) do
create(:procedure, :with_service, :with_instructeur, :with_zone,
aasm_state: :brouillon,
diff --git a/spec/system/administrateurs/procedure_cloning_spec.rb b/spec/system/administrateurs/procedure_cloning_spec.rb
index 3e733fc61..44963ac7c 100644
--- a/spec/system/administrateurs/procedure_cloning_spec.rb
+++ b/spec/system/administrateurs/procedure_cloning_spec.rb
@@ -3,7 +3,7 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'As an administrateur I wanna clone a procedure', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before do
create(:procedure, :with_service, :with_instructeur, :with_zone,
diff --git a/spec/system/administrateurs/procedure_closing_spec.rb b/spec/system/administrateurs/procedure_closing_spec.rb
index 363ee66fd..c1395b2cd 100644
--- a/spec/system/administrateurs/procedure_closing_spec.rb
+++ b/spec/system/administrateurs/procedure_closing_spec.rb
@@ -3,7 +3,7 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'Closing a procedure', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let!(:procedure) do
create(:procedure_with_dossiers,
:published,
diff --git a/spec/system/administrateurs/procedure_creation_spec.rb b/spec/system/administrateurs/procedure_creation_spec.rb
index 829890171..b55858cb7 100644
--- a/spec/system/administrateurs/procedure_creation_spec.rb
+++ b/spec/system/administrateurs/procedure_creation_spec.rb
@@ -3,7 +3,7 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'Creating a new procedure', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before do
login_as administrateur.user, scope: :user
diff --git a/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb b/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb
index 6dd065aae..4dcf555bb 100644
--- a/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb
+++ b/spec/system/administrateurs/procedure_groupe_instructeur_spec.rb
@@ -3,11 +3,11 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'Manage procedure instructeurs', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
- let!(:procedure) { create(:procedure) }
- let!(:administrateurs_procedure) { create(:administrateurs_procedure, administrateur: administrateur, procedure: procedure, manager: manager) }
+ let(:administrateur) { administrateurs(:default_admin) }
+ let(:procedure) { create(:procedure) }
let(:manager) { false }
before do
+ procedure.administrateurs_procedures.update_all(manager:)
login_as administrateur.user, scope: :user
end
diff --git a/spec/system/administrateurs/procedure_locked_spec.rb b/spec/system/administrateurs/procedure_locked_spec.rb
index d3da26fa4..72d8bbaee 100644
--- a/spec/system/administrateurs/procedure_locked_spec.rb
+++ b/spec/system/administrateurs/procedure_locked_spec.rb
@@ -1,5 +1,5 @@
describe 'procedure locked' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before do
login_as administrateur.user, scope: :user
diff --git a/spec/system/administrateurs/procedure_publish_spec.rb b/spec/system/administrateurs/procedure_publish_spec.rb
index dc1858358..224806886 100644
--- a/spec/system/administrateurs/procedure_publish_spec.rb
+++ b/spec/system/administrateurs/procedure_publish_spec.rb
@@ -3,7 +3,7 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'Publishing a procedure', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:other_administrateur) { create(:administrateur) }
let(:instructeurs) { [administrateur.user.instructeur] }
diff --git a/spec/system/administrateurs/procedure_update_spec.rb b/spec/system/administrateurs/procedure_update_spec.rb
index 19d006a51..65440e57e 100644
--- a/spec/system/administrateurs/procedure_update_spec.rb
+++ b/spec/system/administrateurs/procedure_update_spec.rb
@@ -3,7 +3,7 @@ require 'system/administrateurs/procedure_spec_helper'
describe 'Administrateurs can edit procedures', js: true do
include ProcedureSpecHelper
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let!(:procedure) do
create(:procedure_with_dossiers,
:published,
diff --git a/spec/system/api_particulier/api_particulier_spec.rb b/spec/system/api_particulier/api_particulier_spec.rb
index aa06327db..ef496b033 100644
--- a/spec/system/api_particulier/api_particulier_spec.rb
+++ b/spec/system/api_particulier/api_particulier_spec.rb
@@ -1,5 +1,5 @@
describe 'fetch API Particulier Data', js: true do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:expected_token) { 'd7e9c9f4c3ca00caadde31f50fd4521a' }
diff --git a/spec/system/instructeurs/batch_operation_spec.rb b/spec/system/instructeurs/batch_operation_spec.rb
index acd0e79e2..e540f7edb 100644
--- a/spec/system/instructeurs/batch_operation_spec.rb
+++ b/spec/system/instructeurs/batch_operation_spec.rb
@@ -4,7 +4,7 @@ describe 'BatchOperation a dossier:', js: true do
let(:password) { 'demarches-simplifiees' }
let(:instructeur) { create(:instructeur, password: password) }
- let(:procedure) { create(:simple_procedure, :published, instructeurs: [instructeur], administrateurs: [create(:administrateur)]) }
+ let(:procedure) { create(:simple_procedure, :published, instructeurs: [instructeur], administrateurs: [administrateurs(:default_admin)]) }
context 'with an instructeur' do
scenario 'create a BatchOperation' do
diff --git a/spec/system/patron_spec.rb b/spec/system/patron_spec.rb
index 641b3e846..6a2c8d4db 100644
--- a/spec/system/patron_spec.rb
+++ b/spec/system/patron_spec.rb
@@ -1,5 +1,5 @@
describe 'Accessing the /patron page:' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
before { sign_in administrateur.user }
scenario 'I can display a page with all form fields and UI elements' do
diff --git a/spec/system/users/managing_password_spec.rb b/spec/system/users/managing_password_spec.rb
index d40da9800..7d73bbdc5 100644
--- a/spec/system/users/managing_password_spec.rb
+++ b/spec/system/users/managing_password_spec.rb
@@ -29,7 +29,7 @@ describe 'Managing password:', js: true do
end
context 'for admins' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:user) { administrateur.user }
let(:weak_password) { '12345678' }
let(:strong_password) { 'a new, long, and complicated password!' }
diff --git a/spec/system/users/sign_out_spec.rb b/spec/system/users/sign_out_spec.rb
index 9bed3514d..c1aa23c20 100644
--- a/spec/system/users/sign_out_spec.rb
+++ b/spec/system/users/sign_out_spec.rb
@@ -1,6 +1,6 @@
describe 'Sign out' do
context 'when a user is logged in' do
- let(:user) { create(:administrateur).user }
+ let(:user) { administrateurs(:default_admin).user }
before { login_as user, scope: :user }
diff --git a/spec/views/administrateurs/procedures/zones.html.haml_spec.rb b/spec/views/administrateurs/procedures/zones.html.haml_spec.rb
index fe98de1ad..6f1d2fead 100644
--- a/spec/views/administrateurs/procedures/zones.html.haml_spec.rb
+++ b/spec/views/administrateurs/procedures/zones.html.haml_spec.rb
@@ -1,5 +1,5 @@
describe 'administrateurs/procedures/zones' do
- let(:administrateur) { create(:administrateur) }
+ let(:administrateur) { administrateurs(:default_admin) }
let(:procedure) { create(:procedure) }
let(:populate_zones_task) { Rake::Task['after_party:populate_zones_with_tchap_hs'] }