1
0
Fork 0

Add scopes

This commit is contained in:
Alex Kotov 2019-07-26 08:50:30 +05:00
parent d4c62aad73
commit 7ff73cf588
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
2 changed files with 101 additions and 0 deletions

View file

@ -26,6 +26,12 @@ class Relationship < ApplicationRecord
# Scopes # # Scopes #
########## ##########
scope :supporters, -> { where(status: :supporter) }
scope :excluded, -> { where(status: :excluded) }
scope :members, -> { where(status: :member) }
scope :federal_managers, -> { where(role: :federal_manager) } scope :federal_managers, -> { where(role: :federal_manager) }
scope :federal_supervisors, -> { where(role: :federal_supervisor) } scope :federal_supervisors, -> { where(role: :federal_supervisor) }
@ -33,6 +39,10 @@ class Relationship < ApplicationRecord
scope :federal_secretaries, scope :federal_secretaries,
-> { where(federal_secretary_flag: :federal_secretary) } -> { where(federal_secretary_flag: :federal_secretary) }
scope :regional_managers, -> { where(role: :regional_manager) }
scope :regional_supervisors, -> { where(role: :regional_supervisor) }
scope :regional_secretaries, scope :regional_secretaries,
-> { where(regional_secretary_flag: :regional_secretary) } -> { where(regional_secretary_flag: :regional_secretary) }

View file

@ -213,6 +213,63 @@ RSpec.describe Relationship do
end end
end end
describe '.supporters' do
let!(:relationship1) { create :supporter_relationship }
let!(:relationship2) { create :member_relationship }
let!(:relationship3) { create :excluded_supporter_relationship }
let!(:relationship3) { create :excluded_member_relationship }
let!(:relationship4) { create :federal_manager_relationship }
let!(:relationship5) { create :federal_supervisor_relationship }
let!(:relationship6) { create :regional_manager_relationship }
let!(:relationship7) { create :regional_supervisor_relationship }
let!(:relationship8) { create :supporter_relationship }
specify do
expect(described_class.supporters).to \
eq [relationship1, relationship8]
end
end
describe '.excluded' do
let!(:relationship1) { create :supporter_relationship }
let!(:relationship2) { create :member_relationship }
let!(:relationship3) { create :excluded_supporter_relationship }
let!(:relationship4) { create :excluded_member_relationship }
let!(:relationship5) { create :federal_manager_relationship }
let!(:relationship6) { create :federal_supervisor_relationship }
let!(:relationship7) { create :regional_manager_relationship }
let!(:relationship8) { create :regional_supervisor_relationship }
let!(:relationship9) { create :excluded_supporter_relationship }
specify do
expect(described_class.excluded).to \
eq [relationship3, relationship4, relationship9]
end
end
describe '.members' do
let!(:relationship1) { create :supporter_relationship }
let!(:relationship2) { create :member_relationship }
let!(:relationship3) { create :excluded_supporter_relationship }
let!(:relationship4) { create :excluded_member_relationship }
let!(:relationship5) { create :federal_manager_relationship }
let!(:relationship6) { create :federal_supervisor_relationship }
let!(:relationship7) { create :regional_manager_relationship }
let!(:relationship8) { create :regional_supervisor_relationship }
let!(:relationship9) { create :member_relationship }
specify do
expect(described_class.members).to eq [
relationship2,
relationship5,
relationship6,
relationship7,
relationship8,
relationship9,
]
end
end
describe '.federal_managers' do describe '.federal_managers' do
let!(:relationship1) { create :supporter_relationship } let!(:relationship1) { create :supporter_relationship }
let!(:relationship2) { create :member_relationship } let!(:relationship2) { create :member_relationship }
@ -264,6 +321,40 @@ RSpec.describe Relationship do
end end
end end
describe '.regional_managers' do
let!(:relationship1) { create :supporter_relationship }
let!(:relationship2) { create :member_relationship }
let!(:relationship3) { create :excluded_supporter_relationship }
let!(:relationship3) { create :excluded_member_relationship }
let!(:relationship4) { create :federal_manager_relationship }
let!(:relationship5) { create :federal_supervisor_relationship }
let!(:relationship6) { create :regional_manager_relationship }
let!(:relationship7) { create :regional_supervisor_relationship }
let!(:relationship8) { create :regional_manager_relationship }
specify do
expect(described_class.regional_managers).to \
eq [relationship6, relationship8]
end
end
describe '.regional_supervisors' do
let!(:relationship1) { create :supporter_relationship }
let!(:relationship2) { create :member_relationship }
let!(:relationship3) { create :excluded_supporter_relationship }
let!(:relationship3) { create :excluded_member_relationship }
let!(:relationship4) { create :federal_manager_relationship }
let!(:relationship5) { create :federal_supervisor_relationship }
let!(:relationship6) { create :regional_manager_relationship }
let!(:relationship7) { create :regional_supervisor_relationship }
let!(:relationship8) { create :regional_supervisor_relationship }
specify do
expect(described_class.regional_supervisors).to \
eq [relationship7, relationship8]
end
end
describe '.regional_secretaries' do describe '.regional_secretaries' do
let!(:relationship1) { create :supporter_relationship } let!(:relationship1) { create :supporter_relationship }
let!(:relationship2) { create :member_relationship } let!(:relationship2) { create :member_relationship }