From ba26db355b8f21428118eb3206bfd8d298c920ba Mon Sep 17 00:00:00 2001 From: werner Date: Wed, 5 May 2021 14:47:12 -0300 Subject: [PATCH] Memoize AdminUser#active_tags fixes: https://github.com/bitex-la/compliance/issues/348 --- app/models/admin_user.rb | 2 +- spec/models/person_spec.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/models/admin_user.rb b/app/models/admin_user.rb index b8c1fe93..7b842d81 100644 --- a/app/models/admin_user.rb +++ b/app/models/admin_user.rb @@ -59,7 +59,7 @@ def renew_otp_secret_key! end def active_tags - admin_user_taggings.pluck(:tag_id) + @active_tags ||= admin_user_taggings.pluck(:tag_id).presence end def can_manage_tag?(tag) diff --git a/spec/models/person_spec.rb b/spec/models/person_spec.rb index a50bd414..544719e1 100755 --- a/spec/models/person_spec.rb +++ b/spec/models/person_spec.rb @@ -430,6 +430,18 @@ expect(persons[3].id).to eq(person4.id) end + it 'memoize active tags' do + _, _, person3, = setup_for_admin_tags_spec + expect(Person.default_scope).to include(person3) + create(:admin_user_tagging, + admin_user: AdminUser.current_admin_user, + tag: PersonTagging.first.tag) + expect(AdminUser.current_admin_user.reload.active_tags).not_to be_empty + AdminUserTagging.delete_all + expect(AdminUser.current_admin_user.active_tags).not_to be_empty + expect(Person.default_scope).not_to include(person3) + end + it 'add country tag and create a new tag' do person = create(:empty_person)