From f9f31b721a85d72b1933885b047c9cfce6591d81 Mon Sep 17 00:00:00 2001 From: Christophe Robillard Date: Mon, 24 Oct 2022 16:03:49 +0200 Subject: [PATCH] get zones of an admin --- app/models/administrateur.rb | 4 ++++ spec/models/administrateur_spec.rb | 11 +++++++++++ 2 files changed, 15 insertions(+) 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