Browse Source

Org case log relation helpers

pull/114/head
baarkerlounger 4 years ago
parent
commit
4f177d4deb
  1. 2
      app/models/case_log.rb
  2. 12
      app/models/organisation.rb
  3. 14
      spec/models/organisation_spec.rb
  4. 4
      spec/models/user_spec.rb

2
app/models/case_log.rb

@ -47,6 +47,8 @@ class CaseLog < ApplicationRecord
belongs_to :owning_organisation, class_name: "Organisation"
belongs_to :managing_organisation, class_name: "Organisation"
scope :for_organisation, ->(org) { where(owning_organisation: org).or(where(managing_organisation: org)) }
attr_accessor :page_id
enum status: { "not_started" => 0, "in_progress" => 1, "completed" => 2 }

12
app/models/organisation.rb

@ -2,4 +2,16 @@ class Organisation < ApplicationRecord
has_many :users
has_many :owned_case_logs, class_name: "CaseLog", foreign_key: "owning_organisation_id"
has_many :managed_case_logs, class_name: "CaseLog", foreign_key: "managing_organisation_id"
def case_logs
CaseLog.for_organisation(self)
end
def completed_case_logs
case_logs.completed
end
def not_completed_case_logs
case_logs.not_completed
end
end

14
spec/models/organisation_spec.rb

@ -18,15 +18,16 @@ RSpec.describe Organisation, type: :model do
let!(:owned_case_log) do
FactoryBot.create(
:case_log,
:completed,
owning_organisation: organisation,
managing_organisation: other_organisation
managing_organisation: other_organisation,
)
end
let!(:managed_case_log) do
FactoryBot.create(
:case_log,
owning_organisation: other_organisation,
managing_organisation: organisation
managing_organisation: organisation,
)
end
@ -37,6 +38,15 @@ RSpec.describe Organisation, type: :model do
it "has managed case logs" do
expect(organisation.managed_case_logs.first).to eq(managed_case_log)
end
it "has case logs" do
expect(organisation.case_logs.to_a).to eq([owned_case_log, managed_case_log])
end
it "has case log status helper methods" do
expect(organisation.completed_case_logs.to_a).to eq([owned_case_log])
expect(organisation.not_completed_case_logs.to_a).to eq([managed_case_log])
end
end
end
end

4
spec/models/user_spec.rb

@ -9,14 +9,14 @@ RSpec.describe User, type: :model do
:case_log,
:completed,
owning_organisation: user.organisation,
managing_organisation: other_organisation
managing_organisation: other_organisation,
)
end
let!(:managed_case_log) do
FactoryBot.create(
:case_log,
owning_organisation: other_organisation,
managing_organisation: user.organisation
managing_organisation: user.organisation,
)
end

Loading…
Cancel
Save