diff --git a/app/components/groupe_gestionnaire/card/administrateurs_component.rb b/app/components/groupe_gestionnaire/card/administrateurs_component.rb index 73b398fcf..3551f5732 100644 --- a/app/components/groupe_gestionnaire/card/administrateurs_component.rb +++ b/app/components/groupe_gestionnaire/card/administrateurs_component.rb @@ -1,5 +1,6 @@ class GroupeGestionnaire::Card::AdministrateursComponent < ApplicationComponent - def initialize(groupe_gestionnaire:) + def initialize(groupe_gestionnaire:, path:) @groupe_gestionnaire = groupe_gestionnaire + @path = path end end diff --git a/app/components/groupe_gestionnaire/card/administrateurs_component/administrateurs_component.html.haml b/app/components/groupe_gestionnaire/card/administrateurs_component/administrateurs_component.html.haml index a0013cef9..de7014288 100644 --- a/app/components/groupe_gestionnaire/card/administrateurs_component/administrateurs_component.html.haml +++ b/app/components/groupe_gestionnaire/card/administrateurs_component/administrateurs_component.html.haml @@ -1,5 +1,5 @@ .fr-col-6.fr-col-md-4.fr-col-lg-3 - = link_to gestionnaire_groupe_gestionnaire_administrateurs_path(@groupe_gestionnaire), id: 'administrateurs', class: 'fr-tile fr-enlarge-link' do + = link_to @path, id: 'administrateurs', class: 'fr-tile fr-enlarge-link' do .fr-tile__body.flex.column.align-center.justify-between %p.fr-badge.fr-badge--success Validé %div diff --git a/app/components/groupe_gestionnaire/card/children_component.rb b/app/components/groupe_gestionnaire/card/children_component.rb index 8d5178157..4fac51981 100644 --- a/app/components/groupe_gestionnaire/card/children_component.rb +++ b/app/components/groupe_gestionnaire/card/children_component.rb @@ -1,5 +1,6 @@ class GroupeGestionnaire::Card::ChildrenComponent < ApplicationComponent - def initialize(groupe_gestionnaire:) + def initialize(groupe_gestionnaire:, path:) @groupe_gestionnaire = groupe_gestionnaire + @path = path end end diff --git a/app/components/groupe_gestionnaire/card/children_component/children_component.html.haml b/app/components/groupe_gestionnaire/card/children_component/children_component.html.haml index d52916c74..dd5f75806 100644 --- a/app/components/groupe_gestionnaire/card/children_component/children_component.html.haml +++ b/app/components/groupe_gestionnaire/card/children_component/children_component.html.haml @@ -1,5 +1,5 @@ .fr-col-6.fr-col-md-4.fr-col-lg-3 - = link_to gestionnaire_groupe_gestionnaire_children_path(@groupe_gestionnaire), id: 'gestionnaires', class: 'fr-tile fr-enlarge-link' do + = link_to @path, id: 'gestionnaires', class: 'fr-tile fr-enlarge-link' do .fr-tile__body.flex.column.align-center.justify-between %p.fr-badge.fr-badge--success Validé %div diff --git a/app/components/groupe_gestionnaire/card/gestionnaires_component.rb b/app/components/groupe_gestionnaire/card/gestionnaires_component.rb index 383f2a99f..ef51f10bd 100644 --- a/app/components/groupe_gestionnaire/card/gestionnaires_component.rb +++ b/app/components/groupe_gestionnaire/card/gestionnaires_component.rb @@ -1,5 +1,6 @@ class GroupeGestionnaire::Card::GestionnairesComponent < ApplicationComponent - def initialize(groupe_gestionnaire:) + def initialize(groupe_gestionnaire:, path:) @groupe_gestionnaire = groupe_gestionnaire + @path = path end end diff --git a/app/components/groupe_gestionnaire/card/gestionnaires_component/gestionnaires_component.html.haml b/app/components/groupe_gestionnaire/card/gestionnaires_component/gestionnaires_component.html.haml index c6178d615..6193a89be 100644 --- a/app/components/groupe_gestionnaire/card/gestionnaires_component/gestionnaires_component.html.haml +++ b/app/components/groupe_gestionnaire/card/gestionnaires_component/gestionnaires_component.html.haml @@ -1,5 +1,5 @@ .fr-col-6.fr-col-md-4.fr-col-lg-3 - = link_to gestionnaire_groupe_gestionnaire_gestionnaires_path(@groupe_gestionnaire), id: 'gestionnaires', class: 'fr-tile fr-enlarge-link' do + = link_to @path, id: 'gestionnaires', class: 'fr-tile fr-enlarge-link' do .fr-tile__body.flex.column.align-center.justify-between %p.fr-badge.fr-badge--success Validé %div diff --git a/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component.rb b/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component.rb index dce02837b..6a6680e18 100644 --- a/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component.rb +++ b/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component.rb @@ -1,9 +1,10 @@ class GroupeGestionnaire::GroupeGestionnaireAdministrateurs::AdministrateurComponent < ApplicationComponent include ApplicationHelper - def initialize(groupe_gestionnaire:, administrateur:) + def initialize(groupe_gestionnaire:, administrateur:, is_gestionnaire: true) @groupe_gestionnaire = groupe_gestionnaire @administrateur = administrateur + @is_gestionnaire = is_gestionnaire end def email @@ -23,7 +24,7 @@ class GroupeGestionnaire::GroupeGestionnaireAdministrateurs::AdministrateurCompo end def remove_button - if is_there_at_least_another_active_admin? + if is_there_at_least_another_active_admin? && @is_gestionnaire button_to 'Retirer', remove_gestionnaire_groupe_gestionnaire_administrateur_path(@groupe_gestionnaire, @administrateur), method: :delete, diff --git a/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component/administrateur_component.html.haml b/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component/administrateur_component.html.haml index 85fa63ecd..9c306afd4 100644 --- a/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component/administrateur_component.html.haml +++ b/app/components/groupe_gestionnaire/groupe_gestionnaire_administrateurs/administrateur_component/administrateur_component.html.haml @@ -2,5 +2,6 @@ %td= email %td= created_at %td= registration_state - %td= remove_button - %td= destroy_button + - if @is_gestionnaire + %td= remove_button + %td= destroy_button diff --git a/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component.rb b/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component.rb index 9d9eedafa..957b9ea35 100644 --- a/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component.rb +++ b/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component.rb @@ -1,9 +1,10 @@ class GroupeGestionnaire::GroupeGestionnaireGestionnaires::GestionnaireComponent < ApplicationComponent include ApplicationHelper - def initialize(groupe_gestionnaire:, gestionnaire:) + def initialize(groupe_gestionnaire:, gestionnaire:, is_gestionnaire: true) @groupe_gestionnaire = groupe_gestionnaire @gestionnaire = gestionnaire + @is_gestionnaire = is_gestionnaire end def email @@ -23,7 +24,7 @@ class GroupeGestionnaire::GroupeGestionnaireGestionnaires::GestionnaireComponent end def remove_button - if is_there_at_least_another_active_admin? + if is_there_at_least_another_active_admin? && @is_gestionnaire button_to 'Retirer', gestionnaire_groupe_gestionnaire_gestionnaire_path(@groupe_gestionnaire, @gestionnaire), method: :delete, diff --git a/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component/gestionnaire_component.html.haml b/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component/gestionnaire_component.html.haml index c2377cc49..85a7fabfd 100644 --- a/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component/gestionnaire_component.html.haml +++ b/app/components/groupe_gestionnaire/groupe_gestionnaire_gestionnaires/gestionnaire_component/gestionnaire_component.html.haml @@ -2,4 +2,5 @@ %td= email %td= created_at %td= registration_state - %td= remove_button + - if @is_gestionnaire + %td= remove_button diff --git a/app/controllers/administrateurs/groupe_gestionnaire_controller.rb b/app/controllers/administrateurs/groupe_gestionnaire_controller.rb new file mode 100644 index 000000000..641293ec8 --- /dev/null +++ b/app/controllers/administrateurs/groupe_gestionnaire_controller.rb @@ -0,0 +1,28 @@ +module Administrateurs + class GroupeGestionnaireController < AdministrateurController + before_action :retrieve_groupe_gestionnaire, only: [:show, :administrateurs, :gestionnaires] + + def show + end + + def administrateurs + end + + def gestionnaires + end + + private + + def retrieve_groupe_gestionnaire + id = current_administrateur.groupe_gestionnaire_id + @groupe_gestionnaire = GroupeGestionnaire.find(id) + + Sentry.configure_scope do |scope| + scope.set_tags(groupe_gestionnaire: @groupe_gestionnaire.id) + end + rescue ActiveRecord::RecordNotFound + flash.alert = 'Groupe inexistant' + redirect_to admin_procedures_path, status: 404 + end + end +end diff --git a/app/dashboards/groupe_gestionnaire_dashboard.rb b/app/dashboards/groupe_gestionnaire_dashboard.rb index b60b38f71..ad99252c7 100644 --- a/app/dashboards/groupe_gestionnaire_dashboard.rb +++ b/app/dashboards/groupe_gestionnaire_dashboard.rb @@ -13,7 +13,8 @@ class GroupeGestionnaireDashboard < Administrate::BaseDashboard created_at: Field::DateTime, updated_at: Field::DateTime, gestionnaires: Field::HasMany, - administrateurs: Field::HasMany + administrateurs: Field::HasMany, + parent_name: Field::String }.freeze # COLLECTION_ATTRIBUTES @@ -26,7 +27,8 @@ class GroupeGestionnaireDashboard < Administrate::BaseDashboard :created_at, :name, :gestionnaires, - :administrateurs + :administrateurs, + :parent_name ].freeze # SHOW_PAGE_ATTRIBUTES @@ -35,7 +37,8 @@ class GroupeGestionnaireDashboard < Administrate::BaseDashboard :gestionnaires, :administrateurs, :id, - :created_at + :created_at, + :parent_name ].freeze # FORM_ATTRIBUTES diff --git a/app/models/groupe_gestionnaire.rb b/app/models/groupe_gestionnaire.rb index 2c44cf903..1c719ce97 100644 --- a/app/models/groupe_gestionnaire.rb +++ b/app/models/groupe_gestionnaire.rb @@ -21,4 +21,8 @@ class GroupeGestionnaire < ApplicationRecord def can_be_deleted?(current_user) (gestionnaires.empty? || (gestionnaires == [current_user])) && administrateurs.empty? && children.empty? end + + def parent_name + parent&.name + end end diff --git a/app/views/administrateurs/groupe_gestionnaire/administrateurs.html.haml b/app/views/administrateurs/groupe_gestionnaire/administrateurs.html.haml new file mode 100644 index 000000000..761ae05bd --- /dev/null +++ b/app/views/administrateurs/groupe_gestionnaire/administrateurs.html.haml @@ -0,0 +1,15 @@ += render partial: 'gestionnaires/breadcrumbs', + locals: { steps: [['Mon groupe gestionnaire', admin_groupe_gestionnaire_path], + ['Administrateurs']], preview: false } + +.container + %h1 Administrateurs de « #{@groupe_gestionnaire.name} » + + %table.table + %thead + %tr + %th= 'Adresse email' + %th= 'Enregistré le' + %th= 'État' + %tbody#administrateurs + = render(GroupeGestionnaire::GroupeGestionnaireAdministrateurs::AdministrateurComponent.with_collection(@groupe_gestionnaire.administrateurs.order('users.email'), groupe_gestionnaire: @groupe_gestionnaire, is_gestionnaire: false)) diff --git a/app/views/administrateurs/groupe_gestionnaire/gestionnaires.html.haml b/app/views/administrateurs/groupe_gestionnaire/gestionnaires.html.haml new file mode 100644 index 000000000..42a4c9083 --- /dev/null +++ b/app/views/administrateurs/groupe_gestionnaire/gestionnaires.html.haml @@ -0,0 +1,18 @@ += render partial: 'gestionnaires/breadcrumbs', + locals: { steps: [['Mon groupe gestionnaire', admin_groupe_gestionnaire_path], + ['Gestionnaires']], preview: false } + +.container + %h1 Gestionnaires de « #{@groupe_gestionnaire.name} » + + %table.table + %thead + %tr + %th= 'Adresse email' + %th= 'Enregistré le' + %th= 'État' + %tbody#gestionnaires + = render(GroupeGestionnaire::GroupeGestionnaireGestionnaires::GestionnaireComponent.with_collection(@groupe_gestionnaire.gestionnaires.order('users.email'), groupe_gestionnaire: @groupe_gestionnaire, is_gestionnaire: false)) + + .fr-mt-4w + = #render 'add_admin_form', groupe_gestionnaire: @groupe_gestionnaire diff --git a/app/views/administrateurs/groupe_gestionnaire/show.html.haml b/app/views/administrateurs/groupe_gestionnaire/show.html.haml new file mode 100644 index 000000000..42df76cc6 --- /dev/null +++ b/app/views/administrateurs/groupe_gestionnaire/show.html.haml @@ -0,0 +1,9 @@ += render partial: 'gestionnaires/breadcrumbs', + locals: { steps: [["Mon groupe gestionnaire"]], + metadatas: true } + +.fr-container + %h2= "Gestion du groupe gestionnaire № #{@groupe_gestionnaire.id}" + .fr-grid-row.fr-grid-row--gutters.fr-mb-5w + = render GroupeGestionnaire::Card::GestionnairesComponent.new(groupe_gestionnaire: @groupe_gestionnaire, path: admin_groupe_gestionnaire_gestionnaires_path) + = render GroupeGestionnaire::Card::AdministrateursComponent.new(groupe_gestionnaire: @groupe_gestionnaire, path: admin_groupe_gestionnaire_administrateurs_path) diff --git a/app/views/administrateurs/procedures/_main_menu.html.haml b/app/views/administrateurs/procedures/_main_menu.html.haml new file mode 100644 index 000000000..d34efdfbf --- /dev/null +++ b/app/views/administrateurs/procedures/_main_menu.html.haml @@ -0,0 +1,8 @@ +.fr-container + %nav#header-navigation.fr-nav{ role: 'navigation', 'aria-label': 'Menu principal administrateur' } + %ul.fr-nav__list + %li.fr-nav__item= link_to 'Mes démarches', admin_procedures_path, class:'fr-nav__link', 'aria-current': current_page?(controller: 'procedures', action: :index) ? 'true' : nil + - if Rails.application.config.ds_zonage_enabled + %li.fr-nav__item= link_to 'Toutes les démarches', all_admin_procedures_path(zone_ids: current_administrateur.zones), class:'fr-nav__link', 'aria-current': current_page?(all_admin_procedures_path) ? 'page' : nil + - if current_administrateur.groupe_gestionnaire_id + %li.fr-nav__item= link_to 'Mon groupe gestionnaire', admin_groupe_gestionnaire_path, class:'fr-nav__link', 'aria-current': current_page?(admin_groupe_gestionnaire_path) ? 'page' : nil diff --git a/app/views/gestionnaires/groupe_gestionnaires/show.html.haml b/app/views/gestionnaires/groupe_gestionnaires/show.html.haml index e8962e729..bceaf483f 100644 --- a/app/views/gestionnaires/groupe_gestionnaires/show.html.haml +++ b/app/views/gestionnaires/groupe_gestionnaires/show.html.haml @@ -19,6 +19,6 @@ groupe parent : %a{ href: gestionnaire_groupe_gestionnaire_path(@groupe_gestionnaire.groupe_gestionnaire) }= @groupe_gestionnaire.groupe_gestionnaire.name .fr-grid-row.fr-grid-row--gutters.fr-mb-5w - = render GroupeGestionnaire::Card::GestionnairesComponent.new(groupe_gestionnaire: @groupe_gestionnaire) - = render GroupeGestionnaire::Card::AdministrateursComponent.new(groupe_gestionnaire: @groupe_gestionnaire) - = render GroupeGestionnaire::Card::ChildrenComponent.new(groupe_gestionnaire: @groupe_gestionnaire) + = render GroupeGestionnaire::Card::GestionnairesComponent.new(groupe_gestionnaire: @groupe_gestionnaire, path: gestionnaire_groupe_gestionnaire_gestionnaires_path(@groupe_gestionnaire)) + = render GroupeGestionnaire::Card::AdministrateursComponent.new(groupe_gestionnaire: @groupe_gestionnaire, path: gestionnaire_groupe_gestionnaire_administrateurs_path(@groupe_gestionnaire)) + = render GroupeGestionnaire::Card::ChildrenComponent.new(groupe_gestionnaire: @groupe_gestionnaire, path: gestionnaire_groupe_gestionnaire_children_path(@groupe_gestionnaire)) diff --git a/config/routes.rb b/config/routes.rb index f6be05436..79c9d740b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -650,6 +650,10 @@ Rails.application.routes.draw do resource :sva_svr, only: [:show, :edit, :update], controller: 'sva_svr' end + get 'mon-groupe' => 'groupe_gestionnaire#show', as: :groupe_gestionnaire + get 'mon-groupe/administrateurs' => 'groupe_gestionnaire#administrateurs', as: :groupe_gestionnaire_administrateurs + get 'mon-groupe/gestionnaires' => 'groupe_gestionnaire#gestionnaires', as: :groupe_gestionnaire_gestionnaires + resources :services, except: [:show] do collection do patch 'add_to_procedure' diff --git a/spec/controllers/administrateurs/groupe_gestionnaire_controller_spec.rb b/spec/controllers/administrateurs/groupe_gestionnaire_controller_spec.rb new file mode 100644 index 000000000..55187a46b --- /dev/null +++ b/spec/controllers/administrateurs/groupe_gestionnaire_controller_spec.rb @@ -0,0 +1,66 @@ +describe Administrateurs::GroupeGestionnaireController, type: :controller do + let(:admin) { create(:administrateur) } + + describe "#show" do + subject { get :show } + + context "when not logged" do + before { subject } + it { expect(response).to redirect_to(new_user_session_path) } + end + + context "when logged in" do + let(:gestionnaire) { create(:gestionnaire) } + let!(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire], administrateurs: [admin]) } + before do + sign_in(admin.user) + subject + end + + it { expect(response).to have_http_status(:ok) } + it { expect(assigns(:groupe_gestionnaire)).to eq(groupe_gestionnaire) } + end + end + + describe "#gestionnaires" do + subject { get :gestionnaires } + let(:gestionnaire) { create(:gestionnaire) } + let!(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire], administrateurs: [admin]) } + + context "when not logged" do + before { subject } + it { expect(response).to redirect_to(new_user_session_path) } + end + + context "when logged in" do + before do + sign_in(admin.user) + subject + end + + it { expect(response).to have_http_status(:ok) } + it { expect(assigns(:groupe_gestionnaire)).to eq(groupe_gestionnaire) } + end + end + + describe "#administrateurs" do + subject { get :administrateurs } + let(:gestionnaire) { create(:gestionnaire) } + let!(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire], administrateurs: [admin]) } + + context "when not logged" do + before { subject } + it { expect(response).to redirect_to(new_user_session_path) } + end + + context "when logged in" do + before do + sign_in(admin.user) + subject + end + + it { expect(response).to have_http_status(:ok) } + it { expect(assigns(:groupe_gestionnaire)).to eq(groupe_gestionnaire) } + end + end +end diff --git a/spec/controllers/gestionnaires/groupe_gestionnaire_children_controller_spec.rb b/spec/controllers/gestionnaires/groupe_gestionnaire_children_controller_spec.rb index 009ff5bc6..699a7ab42 100644 --- a/spec/controllers/gestionnaires/groupe_gestionnaire_children_controller_spec.rb +++ b/spec/controllers/gestionnaires/groupe_gestionnaire_children_controller_spec.rb @@ -18,9 +18,11 @@ describe Gestionnaires::GroupeGestionnaireChildrenController, type: :controller subject end - it { expect(response).to have_http_status(:ok) } - it { expect(assigns(:groupe_gestionnaire).children).to include(child_groupe_gestionnaire) } - it { expect(response.body).to include(child_groupe_gestionnaire.name) } + it do + expect(response).to have_http_status(:ok) + expect(assigns(:groupe_gestionnaire).children).to include(child_groupe_gestionnaire) + expect(response.body).to include(child_groupe_gestionnaire.name) + end end end diff --git a/spec/controllers/gestionnaires/groupe_gestionnaire_gestionnaires_controller_spec.rb b/spec/controllers/gestionnaires/groupe_gestionnaire_gestionnaires_controller_spec.rb index bad6298e9..bdf212d85 100644 --- a/spec/controllers/gestionnaires/groupe_gestionnaire_gestionnaires_controller_spec.rb +++ b/spec/controllers/gestionnaires/groupe_gestionnaire_gestionnaires_controller_spec.rb @@ -42,9 +42,11 @@ describe Gestionnaires::GroupeGestionnaireGestionnairesController, type: :contro context 'when there are many gestionnaires' do before { remove_gestionnaire(new_gestionnaire) } - it { expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) } - it { expect(groupe_gestionnaire.reload.gestionnaires.count).to eq(1) } - it { expect(flash.notice).to eq("Le gestionnaire « #{new_gestionnaire.email} » a été retiré du groupe gestionnaire.") } + it do + expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) + expect(groupe_gestionnaire.reload.gestionnaires.count).to eq(1) + expect(flash.notice).to eq("Le gestionnaire « #{new_gestionnaire.email} » a été retiré du groupe gestionnaire.") + end end context 'when there is only one gestionnaire' do @@ -53,9 +55,11 @@ describe Gestionnaires::GroupeGestionnaireGestionnairesController, type: :contro remove_gestionnaire(gestionnaire) end - it { expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) } - it { expect(groupe_gestionnaire.gestionnaires.count).to eq(1) } - it { expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un gestionnaire dans le groupe racine') } + it do + expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) + expect(groupe_gestionnaire.gestionnaires.count).to eq(1) + expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un gestionnaire dans le groupe racine') + end end end end diff --git a/spec/controllers/gestionnaires/groupe_gestionnaires_controller_spec.rb b/spec/controllers/gestionnaires/groupe_gestionnaires_controller_spec.rb index ba26641b3..63c57d385 100644 --- a/spec/controllers/gestionnaires/groupe_gestionnaires_controller_spec.rb +++ b/spec/controllers/gestionnaires/groupe_gestionnaires_controller_spec.rb @@ -18,10 +18,12 @@ describe Gestionnaires::GroupeGestionnairesController, type: :controller do subject end - it { expect(response).to have_http_status(:ok) } - it { expect(assigns(:groupe_gestionnaires)).to include(groupe_gestionnaire) } - it { expect(assigns(:groupe_gestionnaires)).to include(other_groupe_gestionnaire) } - it { expect(assigns(:groupe_gestionnaires)).not_to include(not_my_groupe_gestionnaire) } + it do + expect(response).to have_http_status(:ok) + expect(assigns(:groupe_gestionnaires)).to include(groupe_gestionnaire) + expect(assigns(:groupe_gestionnaires)).to include(other_groupe_gestionnaire) + expect(assigns(:groupe_gestionnaires)).not_to include(not_my_groupe_gestionnaire) + end end end diff --git a/spec/controllers/manager/groupe_gestionnaires_controller_spec.rb b/spec/controllers/manager/groupe_gestionnaires_controller_spec.rb index ae52bd02c..8298814ae 100644 --- a/spec/controllers/manager/groupe_gestionnaires_controller_spec.rb +++ b/spec/controllers/manager/groupe_gestionnaires_controller_spec.rb @@ -37,9 +37,11 @@ describe Manager::GroupeGestionnairesController, type: :controller do context 'of a new gestionnaire' do let(:new_gestionnaire_email) { 'new_gestionnaire@mail.com' } - it { expect(groupe_gestionnaire.gestionnaires.map(&:email)).to include(new_gestionnaire_email) } - it { expect(flash.notice).to be_present } - it { expect(response).to redirect_to(manager_groupe_gestionnaire_path(groupe_gestionnaire)) } + it do + expect(groupe_gestionnaire.gestionnaires.map(&:email)).to include(new_gestionnaire_email) + expect(flash.notice).to be_present + expect(response).to redirect_to(manager_groupe_gestionnaire_path(groupe_gestionnaire)) + end end end @@ -62,9 +64,11 @@ describe Manager::GroupeGestionnairesController, type: :controller do context 'when there are many gestionnaires' do before { remove_gestionnaire(new_gestionnaire) } - it { expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) } - it { expect(groupe_gestionnaire.reload.gestionnaires.count).to eq(1) } - it { expect(response).to redirect_to(manager_groupe_gestionnaire_path(groupe_gestionnaire)) } + it do + expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) + expect(groupe_gestionnaire.reload.gestionnaires.count).to eq(1) + expect(response).to redirect_to(manager_groupe_gestionnaire_path(groupe_gestionnaire)) + end end context 'when there is only one gestionnaire' do @@ -73,10 +77,12 @@ describe Manager::GroupeGestionnairesController, type: :controller do remove_gestionnaire(gestionnaire) end - it { expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) } - it { expect(groupe_gestionnaire.gestionnaires.count).to eq(1) } - it { expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un gestionnaire dans le groupe racine') } - it { expect(response).to redirect_to(manager_groupe_gestionnaire_path(groupe_gestionnaire)) } + it do + expect(groupe_gestionnaire.gestionnaires).to include(gestionnaire) + expect(groupe_gestionnaire.gestionnaires.count).to eq(1) + expect(flash.alert).to eq('Suppression impossible : il doit y avoir au moins un gestionnaire dans le groupe racine') + expect(response).to redirect_to(manager_groupe_gestionnaire_path(groupe_gestionnaire)) + end end end end