Browse Source

Update test file generation (#2868)

* Extract test file generation

* Remove secondary

* Make link shorter

* Move log_to_csv classes to helpers
pull/2880/head
kosiakkatrina 2 months ago committed by GitHub
parent
commit
830adc0dd7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      app/components/create_log_actions_component.html.erb
  2. 4
      app/components/create_log_actions_component.rb
  3. 14
      app/controllers/lettings_logs_controller.rb
  4. 14
      app/controllers/sales_logs_controller.rb
  5. 68
      app/controllers/test_data_controller.rb
  6. 14
      app/helpers/bulk_upload/lettings_log_to_csv.rb
  7. 12
      app/helpers/bulk_upload/sales_log_to_csv.rb
  8. 14
      config/routes.rb

5
app/components/create_log_actions_component.html.erb

@ -9,8 +9,9 @@
<% end %> <% end %>
<% if FeatureToggle.create_test_logs_enabled? %> <% if FeatureToggle.create_test_logs_enabled? %>
<%= govuk_button_link_to "Create test log", create_test_log_href, secondary: true %> <%= govuk_link_to "Create test log", create_test_log_href %>
<%= govuk_button_link_to "Create test log (setup only)", create_setup_test_log_href, secondary: true %> <%= govuk_link_to "Create test log (setup only)", create_setup_test_log_href %>
<%= govuk_link_to "Get test BU file (2024)", create_2024_test_bulk_upload_href %>
<% end %> <% end %>
<% end %> <% end %>
</div> </div>

4
app/components/create_log_actions_component.rb

@ -42,6 +42,10 @@ class CreateLogActionsComponent < ViewComponent::Base
send("create_setup_test_#{log_type}_log_path") send("create_setup_test_#{log_type}_log_path")
end end
def create_2024_test_bulk_upload_href
send("create_2024_test_#{log_type}_bulk_upload_path")
end
def view_uploads_button_copy def view_uploads_button_copy
"View #{log_type} bulk uploads" "View #{log_type} bulk uploads"
end end

14
app/controllers/lettings_logs_controller.rb

@ -149,20 +149,6 @@ class LettingsLogsController < LogsController
end end
end end
def create_test_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:lettings_log, :completed, assigned_to: current_user, ppostcode_full: "SW1A 1AA")
redirect_to lettings_log_path(log)
end
def create_setup_test_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:lettings_log, :setup_completed, assigned_to: current_user)
redirect_to lettings_log_path(log)
end
private private
def session_filters def session_filters

14
app/controllers/sales_logs_controller.rb

@ -119,20 +119,6 @@ class SalesLogsController < LogsController
end end
end end
def create_test_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:sales_log, :completed, assigned_to: current_user)
redirect_to sales_log_path(log)
end
def create_setup_test_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:sales_log, :shared_ownership_setup_complete, assigned_to: current_user)
redirect_to sales_log_path(log)
end
private private
def session_filters def session_filters

68
app/controllers/test_data_controller.rb

@ -0,0 +1,68 @@
class TestDataController < ApplicationController
rescue_from ActiveRecord::RecordNotFound, with: :render_not_found
def create_test_lettings_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:lettings_log, :completed, assigned_to: current_user, ppostcode_full: "SW1A 1AA")
redirect_to lettings_log_path(log)
end
def create_setup_test_lettings_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:lettings_log, :setup_completed, assigned_to: current_user)
redirect_to lettings_log_path(log)
end
def create_2024_test_lettings_bulk_upload
return render_not_found unless FeatureToggle.create_test_logs_enabled?
file = Tempfile.new("test_lettings_log.csv")
log = FactoryBot.create(:lettings_log, :completed, assigned_to: current_user, ppostcode_full: "SW1A 1AA")
log_to_csv = BulkUpload::LettingsLogToCsv.new(log:, line_ending: "\n", overrides: { organisation_id: "ORG#{log.owning_organisation_id}", managing_organisation_id: "ORG#{log.owning_organisation_id}" })
file.write(log_to_csv.default_field_numbers_row)
file.write(log_to_csv.to_csv_row)
file.rewind
send_file file.path, type: "text/csv",
filename: "test_lettings_log.csv",
disposition: "attachment",
after_send: lambda {
file.close
file.unlink
}
end
def create_test_sales_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:sales_log, :completed, assigned_to: current_user)
redirect_to sales_log_path(log)
end
def create_setup_test_sales_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?
log = FactoryBot.create(:sales_log, :shared_ownership_setup_complete, assigned_to: current_user)
redirect_to sales_log_path(log)
end
def create_2024_test_sales_bulk_upload
return render_not_found unless FeatureToggle.create_test_logs_enabled?
file = Tempfile.new("test_sales_log.csv")
log = FactoryBot.create(:sales_log, :completed, assigned_to: current_user, value: 180_000, deposit: 150_000)
log_to_csv = BulkUpload::SalesLogToCsv.new(log:, line_ending: "\n", overrides: { organisation_id: "ORG#{log.owning_organisation_id}", managing_organisation_id: "ORG#{log.owning_organisation_id}" })
file.write(log_to_csv.default_field_numbers_row)
file.write(log_to_csv.to_csv_row)
file.rewind
send_file file.path, type: "text/csv",
filename: "test_sales_log.csv",
disposition: "attachment",
after_send: lambda {
file.close
file.unlink
}
end
end

14
spec/support/bulk_upload/lettings_log_to_csv.rb → app/helpers/bulk_upload/lettings_log_to_csv.rb

@ -2,10 +2,12 @@ class BulkUpload::LettingsLogToCsv
attr_reader :log, :line_ending, :col_offset, :overrides attr_reader :log, :line_ending, :col_offset, :overrides
def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {}) def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {})
# rubocop:disable Rails/HelperInstanceVariable
@log = log @log = log
@line_ending = line_ending @line_ending = line_ending
@col_offset = col_offset @col_offset = col_offset
@overrides = overrides @overrides = overrides
# rubocop:enable Rails/HelperInstanceVariable
end end
def row_prefix def row_prefix
@ -145,8 +147,8 @@ class BulkUpload::LettingsLogToCsv
def to_2024_row def to_2024_row
[ [
log.owning_organisation&.old_visible_id, # 1 overrides[:organisation_id] || log.owning_organisation&.old_visible_id, # 1
log.managing_organisation&.old_visible_id, overrides[:managing_organisation_id] || log.managing_organisation&.old_visible_id,
log.assigned_to&.email, log.assigned_to&.email,
log.needstype, log.needstype,
log.scheme&.id ? "S#{log.scheme&.id}" : "", log.scheme&.id ? "S#{log.scheme&.id}" : "",
@ -162,10 +164,10 @@ class BulkUpload::LettingsLogToCsv
log.propcode, log.propcode,
log.declaration, log.declaration,
log.uprn, log.uprn,
log.address_line1, log.address_line1&.tr(",", " "),
log.address_line2, log.address_line2&.tr(",", " "),
log.town_or_city, log.town_or_city&.tr(",", " "),
log.county, # 20 log.county&.tr(",", " "), # 20
((log.postcode_full || "").split(" ") || [""]).first, ((log.postcode_full || "").split(" ") || [""]).first,
((log.postcode_full || "").split(" ") || [""]).last, ((log.postcode_full || "").split(" ") || [""]).last,

12
spec/support/bulk_upload/sales_log_to_csv.rb → app/helpers/bulk_upload/sales_log_to_csv.rb

@ -2,10 +2,12 @@ class BulkUpload::SalesLogToCsv
attr_reader :log, :line_ending, :col_offset, :overrides attr_reader :log, :line_ending, :col_offset, :overrides
def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {}) def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {})
# rubocop:disable Rails/HelperInstanceVariable
@log = log @log = log
@line_ending = line_ending @line_ending = line_ending
@col_offset = col_offset @col_offset = col_offset
@overrides = overrides @overrides = overrides
# rubocop:enable Rails/HelperInstanceVariable
end end
def row_prefix def row_prefix
@ -187,7 +189,7 @@ class BulkUpload::SalesLogToCsv
log.prevloc, # 40 log.prevloc, # 40
((log.ppostcode_full || "").split(" ") || [""]).first, ((log.ppostcode_full || "").split(" ") || [""]).first,
((log.ppostcode_full || "").split(" ") || [""]).last, ((log.ppostcode_full || "").split(" ") || [""]).last,
log.ppcodenk == 0 ? 1 : nil, log.ppcodenk&.zero? ? 1 : nil,
log.pregyrha, log.pregyrha,
log.pregla, log.pregla,
@ -311,10 +313,10 @@ class BulkUpload::SalesLogToCsv
log.builtype, log.builtype,
log.uprn, log.uprn,
log.address_line1, log.address_line1&.tr(",", " "),
log.address_line2, log.address_line2&.tr(",", " "),
log.town_or_city, log.town_or_city&.tr(",", " "),
log.county, log.county&.tr(",", " "),
((log.postcode_full || "").split(" ") || [""]).first, ((log.postcode_full || "").split(" ") || [""]).first,
((log.postcode_full || "").split(" ") || [""]).last, ((log.postcode_full || "").split(" ") || [""]).last,
log.la, log.la,

14
config/routes.rb

@ -389,15 +389,19 @@ Rails.application.routes.draw do
end end
end end
get "create-test-lettings-log", to: "lettings_logs#create_test_log"
get "create-test-sales-log", to: "sales_logs#create_test_log"
get "create-setup-test-lettings-log", to: "lettings_logs#create_setup_test_log"
get "create-setup-test-sales-log", to: "sales_logs#create_setup_test_log"
scope via: :all do scope via: :all do
match "/404", to: "errors#not_found" match "/404", to: "errors#not_found"
match "/429", to: "errors#too_many_requests", status: 429 match "/429", to: "errors#too_many_requests", status: 429
match "/422", to: "errors#unprocessable_entity" match "/422", to: "errors#unprocessable_entity"
match "/500", to: "errors#internal_server_error" match "/500", to: "errors#internal_server_error"
end end
if FeatureToggle.create_test_logs_enabled?
get "create-test-lettings-log", to: "test_data#create_test_lettings_log"
get "create-setup-test-lettings-log", to: "test_data#create_setup_test_lettings_log"
get "create-2024-test-lettings-bulk-upload", to: "test_data#create_2024_test_lettings_bulk_upload"
get "create-test-sales-log", to: "test_data#create_test_sales_log"
get "create-setup-test-sales-log", to: "test_data#create_setup_test_sales_log"
get "create-2024-test-sales-bulk-upload", to: "test_data#create_2024_test_sales_bulk_upload"
end
end end

Loading…
Cancel
Save