Browse Source

CLDC-2505: tests added, bulk_upload model changed, redirect changed

pull/1825/head
Aaron Spencer 3 years ago
parent
commit
dff7eedafb
  1. 1
      app/controllers/bulk_upload_lettings_results_controller.rb
  2. 2
      app/controllers/bulk_upload_lettings_resume_controller.rb
  3. 1
      app/controllers/bulk_upload_sales_results_controller.rb
  4. 4
      app/models/bulk_upload.rb
  5. 2
      app/models/forms/bulk_upload_lettings_resume/chosen.rb
  6. 5
      app/models/forms/bulk_upload_lettings_resume/confirm.rb
  7. 4
      app/models/forms/bulk_upload_lettings_resume/fix_choice.rb
  8. 4
      app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb
  9. 4
      app/models/forms/bulk_upload_lettings_soft_validations_check/confirm_soft_errors.rb
  10. 2
      app/models/forms/bulk_upload_sales_resume/chosen.rb
  11. 4
      app/models/forms/bulk_upload_sales_resume/confirm.rb
  12. 4
      app/models/forms/bulk_upload_sales_resume/fix_choice.rb
  13. 4
      app/models/forms/bulk_upload_sales_soft_validations_check/confirm.rb
  14. 4
      app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb
  15. 14
      app/views/bulk_upload_lettings_resume/completed.html.erb
  16. 14
      app/views/bulk_upload_sales_resume/completed.html.erb
  17. 29
      spec/models/bulk_upload_spec.rb
  18. 50
      spec/requests/bulk_upload_lettings_resume_controller_spec.rb

1
app/controllers/bulk_upload_lettings_results_controller.rb

@ -19,7 +19,6 @@ class BulkUploadLettingsResultsController < ApplicationController
redirect_to(lettings_logs_path(bulk_upload_id: [@bulk_upload.id]))
else
@bulk_upload.update!(choice: "completed")
reset_logs_filters
end
end

2
app/controllers/bulk_upload_lettings_resume_controller.rb

@ -41,8 +41,6 @@ private
Forms::BulkUploadLettingsResume::Chosen.new(form_params.merge(bulk_upload: @bulk_upload))
when "confirm"
Forms::BulkUploadLettingsResume::Confirm.new(form_params.merge(bulk_upload: @bulk_upload))
when "completed"
Forms::BulkUploadLettingsResume::Confirm.new(form_params.merge(bulk_upload: @bulk_upload))
else
raise "invalid form"
end

1
app/controllers/bulk_upload_sales_results_controller.rb

@ -17,7 +17,6 @@ class BulkUploadSalesResultsController < ApplicationController
redirect_to(sales_logs_path(bulk_upload_id: [@bulk_upload.id]))
else
@bulk_upload.update!(choice: "completed")
reset_logs_filters
end
end

4
app/models/bulk_upload.rb

@ -10,6 +10,10 @@ class BulkUpload < ApplicationRecord
after_initialize :generate_identifier, unless: :identifier
def completed?
incomplete_logs = logs.where.not(status: "completed")
!incomplete_logs.exists?
end
def year_combo
"#{year}/#{year - 2000 + 1}"
end

2
app/models/forms/bulk_upload_lettings_resume/chosen.rb

@ -8,7 +8,7 @@ module Forms
attribute :bulk_upload
def view_path
"bulk_upload_lettings_resume/chosen"
bulk_upload.completed? ? "bulk_upload_lettings_resume/completed" : "bulk_upload_lettings_resume/chosen"
end
def back_path

5
app/models/forms/bulk_upload_lettings_resume/confirm.rb

@ -31,8 +31,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
end
def preflight_redirect
@ -41,8 +40,6 @@ module Forms
page_bulk_upload_lettings_resume_path(bulk_upload, :chosen)
when "bulk-confirm-soft-validations"
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_lettings_result_path(bulk_upload.id)
end
end
end

4
app/models/forms/bulk_upload_lettings_resume/fix_choice.rb

@ -52,7 +52,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
end
def preflight_redirect
@ -61,8 +61,6 @@ module Forms
page_bulk_upload_lettings_resume_path(bulk_upload, :chosen)
when "bulk-confirm-soft-validations"
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_lettings_result_path(bulk_upload.id)
end
end
end

4
app/models/forms/bulk_upload_lettings_soft_validations_check/confirm.rb

@ -31,7 +31,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
end
def preflight_redirect
@ -40,8 +40,6 @@ module Forms
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_lettings_resume_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_lettings_result_path(bulk_upload.id)
end
end
end

4
app/models/forms/bulk_upload_lettings_soft_validations_check/confirm_soft_errors.rb

@ -37,7 +37,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
end
def preflight_redirect
@ -46,8 +46,6 @@ module Forms
page_bulk_upload_lettings_soft_validations_check_path(bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_lettings_resume_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_lettings_result_path(bulk_upload.id)
end
end
end

2
app/models/forms/bulk_upload_sales_resume/chosen.rb

@ -8,7 +8,7 @@ module Forms
attribute :bulk_upload
def view_path
"bulk_upload_sales_resume/chosen"
bulk_upload.completed? ? "bulk_upload_sales_resume/completed" : "bulk_upload_sales_resume/chosen"
end
def back_path

4
app/models/forms/bulk_upload_sales_resume/confirm.rb

@ -31,7 +31,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
end
def preflight_redirect
@ -40,8 +40,6 @@ module Forms
page_bulk_upload_sales_resume_path(bulk_upload, :chosen)
when "bulk-confirm-soft-validations"
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_sales_result_path(bulk_upload.id)
end
end
end

4
app/models/forms/bulk_upload_sales_resume/fix_choice.rb

@ -52,7 +52,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
bulk_upload.choice != "create-fix-inline" && bulk_upload.choice != "bulk-confirm-soft-validations"
end
def preflight_redirect
@ -61,8 +61,6 @@ module Forms
page_bulk_upload_sales_resume_path(bulk_upload, :chosen)
when "bulk-confirm-soft-validations"
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_sales_result_path(bulk_upload.id)
end
end
end

4
app/models/forms/bulk_upload_sales_soft_validations_check/confirm.rb

@ -31,7 +31,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
end
def preflight_redirect
@ -40,8 +40,6 @@ module Forms
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_sales_resume_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_lettings_result_path(bulk_upload.id)
end
end
end

4
app/models/forms/bulk_upload_sales_soft_validations_check/confirm_soft_errors.rb

@ -37,7 +37,7 @@ module Forms
end
def preflight_valid?
bulk_upload.choice != "completed" && bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
bulk_upload.choice != "bulk-confirm-soft-validations" && bulk_upload.choice != "create-fix-inline"
end
def preflight_redirect
@ -46,8 +46,6 @@ module Forms
page_bulk_upload_sales_soft_validations_check_path(bulk_upload, :chosen)
when "create-fix-inline"
page_bulk_upload_sales_resume_path(bulk_upload, :chosen)
when "completed"
resume_bulk_upload_lettings_result_path(bulk_upload.id)
end
end
end

14
app/views/bulk_upload_lettings_resume/completed.html.erb

@ -0,0 +1,14 @@
<% content_for :before_content do %>
<%= govuk_back_link href: @form.back_path %>
<% end %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<span class="govuk-caption-l">Bulk upload for lettings (<%= @bulk_upload.year_combo %>)</span>
<h1 class="govuk-heading-l">These logs have been completed</h1>
<p class="govuk-body">You have created logs from your bulk upload, and the logs are complete. Return to lettings logs to view them.</p>
<%= govuk_button_link_to "Return to lettings logs", lettings_logs_path %>
</div>
</div>

14
app/views/bulk_upload_sales_resume/completed.html.erb

@ -0,0 +1,14 @@
<% content_for :before_content do %>
<%= govuk_back_link href: @form.back_path %>
<% end %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<span class="govuk-caption-l">Bulk upload for sales (<%= @bulk_upload.year_combo %>)</span>
<h1 class="govuk-heading-l">These logs have been completed</h1>
<p class="govuk-body">You have created logs from your bulk upload, and the logs are complete. Return to sales logs to view them.</p>
<%= govuk_button_link_to "Return to sales logs", sales_logs_path %>
</div>
</div>

29
spec/models/bulk_upload_spec.rb

@ -0,0 +1,29 @@
require "rails_helper"
RSpec.describe BulkUpload, type: :model do
let(:bulk_upload) { create(:bulk_upload, log_type: "lettings") }
describe "completed?" do
context "when the fixed-choice has not been selected" do
it "returns false" do
end
end
context "when there are incomplete logs" do
let!(:lettings_log) { create_list(:lettings_log, 2,:in_progress, bulk_upload:) }
it "returns false" do
expect(bulk_upload.completed?).to equal(false)
end
end
context "when there are no incomplete logs" do
let!(:lettings_log) { create_list(:lettings_log, 2, :completed, bulk_upload:) }
it "returns true" do
expect(bulk_upload.completed?).to equal(true)
end
end
end
end

50
spec/requests/bulk_upload_lettings_resume_controller_spec.rb

@ -10,10 +10,54 @@ RSpec.describe BulkUploadLettingsResumeController, type: :request do
end
describe "GET /lettings-logs/bulk-upload-resume/:ID/start" do
it "redirects to choice page" do
get "/lettings-logs/bulk-upload-resume/#{bulk_upload.id}/start"
context "when a choice has not been made" do
it "redirects to choice page" do
get "/lettings-logs/bulk-upload-resume/#{bulk_upload.id}/start"
expect(response).to redirect_to("/lettings-logs/bulk-upload-resume/#{bulk_upload.id}/fix-choice")
expect(response).to redirect_to("/lettings-logs/bulk-upload-resume/#{bulk_upload.id}/fix-choice")
end
end
context "when a choice has been made and then the logs have been completed" do
let(:lettings_log) { create_list(:lettings_log, 2, :completed, bulk_upload:) }
it "redirects to the complete page if the bulk uploads are completed" do
bulk_upload.update!(choice: "create-fix-inline")
get "/lettings-logs/bulk-upload-resume/#{bulk_upload.id}/start"
follow_redirect!
expect(response).to redirect_to("/lettings-logs/bulk-upload-resume/#{bulk_upload.id}/chosen")
follow_redirect!
expect(response.body).to include("You have created logs from your bulk upload, and the logs are complete. Return to lettings logs to view them.")
end
end
end
describe "GET /sales-logs/bulk-upload-resume/:ID/start" do
context "when a choice has not been made" do
it "redirects to choice page" do
get "/sales-logs/bulk-upload-resume/#{bulk_upload.id}/start"
expect(response).to redirect_to("/sales-logs/bulk-upload-resume/#{bulk_upload.id}/fix-choice")
end
end
context "when a choice has been made and then the logs have been completed" do
let(:sales_log) { create_list(:sales_log, 2, :completed, bulk_upload:) }
it "redirects to the complete page if the bulk uploads are completed" do
bulk_upload.update!(choice: "create-fix-inline")
get "/sales-logs/bulk-upload-resume/#{bulk_upload.id}/start"
follow_redirect!
expect(response).to redirect_to("/sales-logs/bulk-upload-resume/#{bulk_upload.id}/chosen")
follow_redirect!
expect(response.body).to include("You have created logs from your bulk upload, and the logs are complete. Return to sales logs to view them.")
end
end
end

Loading…
Cancel
Save