Browse Source

alter duplicate logs helper to return duplicates in a format that can be passed through the params

update associated tests
pull/1776/head
Arthur Campbell 3 years ago committed by Kat
parent
commit
6e0792559f
  1. 18
      app/helpers/duplicate_logs_helper.rb
  2. 8
      spec/helpers/duplicate_logs_helper_spec.rb

18
app/helpers/duplicate_logs_helper.rb

@ -29,7 +29,9 @@ module DuplicateLogsHelper
end
def duplicates_for_user(user)
duplicate_sets = { lettings: [], sales: [] }
duplicate_sets = { lettings: {}, sales: {} }
lettings_count = 0
sales_count = 0
duplicate_lettings_ids = Set.new
duplicate_sales_ids = Set.new
@ -37,23 +39,25 @@ module DuplicateLogsHelper
next if duplicate_lettings_ids.include? log.id
duplicates = LettingsLog.filter_by_organisation(user.organisation).duplicate_logs(log)
next unless duplicates.any?
if duplicates.any?
duplicate_ids = [log.id, *duplicates.map(&:id)]
duplicate_sets[:lettings] << duplicate_ids
duplicate_sets[:lettings][lettings_count] = duplicate_ids
lettings_count += 1
duplicate_lettings_ids << duplicate_ids
end
end
user.sales_logs(created_by: true).each do |log|
next if duplicate_sales_ids.include? log.id
duplicates = SalesLog.filter_by_organisation(user.organisation).duplicate_logs(log)
next unless duplicates.any?
if duplicates.any?
duplicate_ids = [log.id, *duplicates.map(&:id)]
duplicate_sets[:sales] << duplicate_ids
duplicate_sets[:sales][sales_count] = duplicate_ids
sales_count += 1
duplicate_sales_ids << duplicate_ids
end
end
return if duplicate_lettings_ids.empty? && duplicate_sales_ids.empty?

8
spec/helpers/duplicate_logs_helper_spec.rb

@ -34,7 +34,7 @@ RSpec.describe DuplicateLogsHelper do
it "returns the ids of the duplicates in an array under the lettings key in the duplicates hash" do
expect(result).to be_a Hash
expect(result[:lettings]).to match_array [[lettings_log.id, duplicate_lettings_log.id]]
expect(result[:lettings].values).to match_array [[lettings_log.id, duplicate_lettings_log.id]]
end
end
@ -43,7 +43,7 @@ RSpec.describe DuplicateLogsHelper do
it "returns the ids of the duplicates in an array under the sales key in the duplicates hash" do
expect(result).to be_a Hash
expect(result[:sales]).to match_array [[sales_log.id, duplicate_sales_log.id]]
expect(result[:sales].values).to match_array [[sales_log.id, duplicate_sales_log.id]]
end
end
@ -59,8 +59,8 @@ RSpec.describe DuplicateLogsHelper do
[further_sales_log.id, *further_duplicate_sales_logs.map(&:id)],
]
expect(result[:lettings]).to match_array [[lettings_log.id, duplicate_lettings_log.id]]
expect(result[:sales]).to match_array expected_sales_duplicates_result
expect(result[:lettings].values).to match_array [[lettings_log.id, duplicate_lettings_log.id]]
expect(result[:sales].values).to match_array expected_sales_duplicates_result
end
end
end

Loading…
Cancel
Save