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
def lettings_logs
LettingsLog.filter_by_organisation(absorbed_organisations << self)
LettingsLog.filter_by_organisation(absorbed_organisations + [self])
end
def sales_logs
SalesLog.filter_by_owning_organisation(absorbed_organisations << self)
SalesLog.filter_by_owning_organisation(absorbed_organisations + [self])
end
def owned_lettings_logs
LettingsLog.filter_by_owning_organisation(absorbed_organisations << self)
LettingsLog.filter_by_owning_organisation(absorbed_organisations + [self])
end
def managed_lettings_logs
LettingsLog.filter_by_managing_organisation(absorbed_organisations << self)
LettingsLog.filter_by_managing_organisation(absorbed_organisations + [self])
end
def address_string

8
app/models/user.rb

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

2
app/models/validations/setup_validations.rb

@ -41,7 +41,7 @@ module Validations::SetupValidations
def validate_organisation(record)
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 :owning_organisation_id, I18n.t("validations.setup.owning_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
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
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"))
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.owning_organisation = user.organisation
record.managing_organisation = other_organisation

Loading…
Cancel
Save