diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb index dc803c5b9..53a521ac0 100644 --- a/app/models/administrateur.rb +++ b/app/models/administrateur.rb @@ -148,6 +148,10 @@ class Administrateur < ApplicationRecord end end + def zones + procedures.joins(:zones).flat_map(&:zones).uniq + end + # required to display feature flags field in manager def features end diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb index 78b1a546b..5e632159f 100644 --- a/spec/models/administrateur_spec.rb +++ b/spec/models/administrateur_spec.rb @@ -213,4 +213,15 @@ describe Administrateur, type: :model do it { is_expected.to be_empty } end end + + describe 'zones' do + let(:admin) { create(:administrateur) } + let(:zone1) { create(:zone) } + let(:zone2) { create(:zone) } + let!(:procedure) { create(:procedure, administrateurs: [admin], zones: [zone1, zone2]) } + + it 'return zones of procedures that the admin is associated' do + expect(admin.zones).to eq [zone1, zone2] + end + end end