Browse Source

Surface organisation and date errors in summary

pull/2104/head
Kat 2 years ago
parent
commit
c4518311c2
  1. 4
      app/services/bulk_upload/lettings/year2023/row_parser.rb
  2. 4
      app/services/bulk_upload/sales/year2023/row_parser.rb
  3. 23
      spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb
  4. 23
      spec/services/bulk_upload/sales/year2023/row_parser_spec.rb

4
app/services/bulk_upload/lettings/year2023/row_parser.rb

@ -436,10 +436,14 @@ class BulkUpload::Lettings::Year2023::RowParser
fields.each do |field| fields.each do |field|
unless errors.include?(field) unless errors.include?(field)
if error.attribute == :owning_organisation_id || error.attribute == :managing_organisation_id || error.attribute == :startdate
errors.add(field, error.message, category: :setup)
else
errors.add(field, error.message) errors.add(field, error.message)
end end
end end
end end
end
@valid = errors.blank? @valid = errors.blank?
end end

4
app/services/bulk_upload/sales/year2023/row_parser.rb

@ -510,10 +510,14 @@ class BulkUpload::Sales::Year2023::RowParser
fields.each do |field| fields.each do |field|
unless errors.include?(field) unless errors.include?(field)
if error.attribute == :owning_organisation_id || error.attribute == :managing_organisation_id || error.attribute == :saledate
errors.add(field, error.message, category: :setup)
else
errors.add(field, error.message) errors.add(field, error.message)
end end
end end
end end
end
errors.blank? errors.blank?
end end

23
spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb

@ -1406,6 +1406,29 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
expect(parser.errors.where(:field_3)).not_to be_present expect(parser.errors.where(:field_3)).not_to be_present
end end
end end
context "when user's org has absorbed owning organisation before the startdate" do
let(:merged_org) { create(:organisation, :with_old_visible_id, holds_own_stock: true) }
let(:attributes) { setup_section_params.merge({ field_1: merged_org.old_visible_id, field_2: merged_org.old_visible_id, field_3: user.email }) }
before do
merged_org.update!(absorbing_organisation: user.organisation, merge_date: Time.zone.today - 5.years)
merged_org.reload
user.organisation.reload
end
it "is not permitted" do
parser = described_class.new(attributes)
parser.valid?
expect(parser.errors[:field_1]).to include(/The owning organisation must be active on the tenancy start date/)
expect(parser.errors[:field_2]).to include(/The managing organisation must be active on the tenancy start date/)
expect(parser.errors[:field_7]).to include(/Enter a date when the owning and managing organisation was active/)
expect(parser.errors[:field_8]).to include(/Enter a date when the owning and managing organisation was active/)
expect(parser.errors[:field_9]).to include(/Enter a date when the owning and managing organisation was active/)
end
end
end end
describe "#field_2" do # managing org describe "#field_2" do # managing org

23
spec/services/bulk_upload/sales/year2023/row_parser_spec.rb

@ -457,6 +457,29 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
expect(parser.errors.where(:field_2)).not_to be_present expect(parser.errors.where(:field_2)).not_to be_present
end end
end end
context "when user's org has absorbed owning organisation before the startdate" do
let(:merged_org) { create(:organisation, :with_old_visible_id, holds_own_stock: true) }
let(:attributes) { setup_section_params.merge({ field_1: merged_org.old_visible_id, field_2: user.email }) }
before do
merged_org.update!(absorbing_organisation: user.organisation, merge_date: Time.zone.today - 3.years)
merged_org.reload
user.organisation.reload
user.reload
end
it "is not permitted" do
parser = described_class.new(attributes)
parser.valid?
expect(parser.errors[:field_1]).to include(/The owning organisation must be active on the sale completion date/)
expect(parser.errors[:field_3]).to include(/Enter a date when the owning organisation was active/)
expect(parser.errors[:field_4]).to include(/Enter a date when the owning organisation was active/)
expect(parser.errors[:field_5]).to include(/Enter a date when the owning organisation was active/)
end
end
end end
describe "#field_2" do # username for created_by describe "#field_2" do # username for created_by

Loading…
Cancel
Save