From abc291fdd5333955ba3b2c26b174e14065b6e469 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Fri, 21 Jul 2023 17:23:45 +0100 Subject: [PATCH] feat: update validation and tests --- app/models/organisation.rb | 8 ++++---- app/models/user.rb | 8 ++++---- app/models/validations/setup_validations.rb | 2 +- spec/models/validations/setup_validations_spec.rb | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/models/organisation.rb b/app/models/organisation.rb index 702ca0417..56c684eb9 100644 --- a/app/models/organisation.rb +++ b/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 diff --git a/app/models/user.rb b/app/models/user.rb index 1b56b04de..1d205c555 100644 --- a/app/models/user.rb +++ b/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? diff --git a/app/models/validations/setup_validations.rb b/app/models/validations/setup_validations.rb index 97ab550a5..055923536 100644 --- a/app/models/validations/setup_validations.rb +++ b/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") diff --git a/spec/models/validations/setup_validations_spec.rb b/spec/models/validations/setup_validations_spec.rb index 7e343f266..bcd7924c5 100644 --- a/spec/models/validations/setup_validations_spec.rb +++ b/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