Browse Source

feat: update validation and tests

pull/1789/head
natdeanlewissoftwire 3 years ago
parent
commit
abc291fdd5
  1. 8
      app/models/organisation.rb
  2. 8
      app/models/user.rb
  3. 2
      app/models/validations/setup_validations.rb
  4. 4
      spec/models/validations/setup_validations_spec.rb

8
app/models/organisation.rb

@ -64,19 +64,19 @@ class Organisation < ApplicationRecord
end end
def lettings_logs def lettings_logs
LettingsLog.filter_by_organisation(absorbed_organisations << self) LettingsLog.filter_by_organisation(absorbed_organisations + [self])
end end
def sales_logs def sales_logs
SalesLog.filter_by_owning_organisation(absorbed_organisations << self) SalesLog.filter_by_owning_organisation(absorbed_organisations + [self])
end end
def owned_lettings_logs def owned_lettings_logs
LettingsLog.filter_by_owning_organisation(absorbed_organisations << self) LettingsLog.filter_by_owning_organisation(absorbed_organisations + [self])
end end
def managed_lettings_logs def managed_lettings_logs
LettingsLog.filter_by_managing_organisation(absorbed_organisations << self) LettingsLog.filter_by_managing_organisation(absorbed_organisations + [self])
end end
def address_string def address_string

8
app/models/user.rb

@ -57,7 +57,7 @@ class User < ApplicationRecord
if support? if support?
LettingsLog.all LettingsLog.all
else else
LettingsLog.filter_by_organisation(organisation.absorbed_organisations << organisation) LettingsLog.filter_by_organisation(organisation.absorbed_organisations + [organisation])
end end
end end
@ -65,16 +65,16 @@ class User < ApplicationRecord
if support? if support?
SalesLog.all SalesLog.all
else else
SalesLog.filter_by_owning_organisation(organisation.absorbed_organisations << organisation) SalesLog.filter_by_owning_organisation(organisation.absorbed_organisations + [organisation])
end end
end end
def owned_lettings_logs def owned_lettings_logs
LettingsLog.filter_by_owning_organisation(organisation.absorbed_organisations << organisation) LettingsLog.filter_by_owning_organisation(organisation.absorbed_organisations + [organisation])
end end
def managed_lettings_logs def managed_lettings_logs
LettingsLog.filter_by_managing_organisation(organisation.absorbed_organisations << organisation) LettingsLog.filter_by_managing_organisation(organisation.absorbed_organisations + [organisation])
end end
def is_key_contact? def is_key_contact?

2
app/models/validations/setup_validations.rb

@ -41,7 +41,7 @@ module Validations::SetupValidations
def validate_organisation(record) def validate_organisation(record)
created_by, managing_organisation, owning_organisation = record.values_at("created_by", "managing_organisation", "owning_organisation") created_by, managing_organisation, owning_organisation = record.values_at("created_by", "managing_organisation", "owning_organisation")
unless [created_by, managing_organisation, owning_organisation].any?(&:blank?) || created_by.organisation.absorbed_organisations << created_by.organisation & [managing_organisation, owning_organisation] unless [created_by, managing_organisation, owning_organisation].any?(&:blank?) || ((created_by.organisation.absorbed_organisations + [created_by.organisation]) & [managing_organisation, owning_organisation]).present?
record.errors.add :created_by, I18n.t("validations.setup.created_by.invalid") record.errors.add :created_by, I18n.t("validations.setup.created_by.invalid")
record.errors.add :owning_organisation_id, I18n.t("validations.setup.owning_organisation.invalid") record.errors.add :owning_organisation_id, I18n.t("validations.setup.owning_organisation.invalid")
record.errors.add :managing_organisation_id, I18n.t("validations.setup.managing_organisation.invalid") record.errors.add :managing_organisation_id, I18n.t("validations.setup.managing_organisation.invalid")

4
spec/models/validations/setup_validations_spec.rb

@ -465,7 +465,7 @@ RSpec.describe Validations::SetupValidations do
describe "#validate_organisation" do describe "#validate_organisation" do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:other_organisation) { create(:organisation) } let(:other_organisation) { create(:organisation, name: "other org") }
it "validates if neither managing nor owning organisation is the same as created_by user organisation" do it "validates if neither managing nor owning organisation is the same as created_by user organisation" do
record.created_by = user record.created_by = user
@ -478,7 +478,7 @@ RSpec.describe Validations::SetupValidations do
expect(record.errors["managing_organisation_id"]).to include(I18n.t("validations.setup.managing_organisation.invalid")) expect(record.errors["managing_organisation_id"]).to include(I18n.t("validations.setup.managing_organisation.invalid"))
end end
it "doesn not validate if either managing or owning organisation is the same as current user organisation" do it "does not validate if either managing or owning organisation is the same as current user organisation" do
record.created_by = user record.created_by = user
record.owning_organisation = user.organisation record.owning_organisation = user.organisation
record.managing_organisation = other_organisation record.managing_organisation = other_organisation

Loading…
Cancel
Save