diff --git a/app/controllers/bulk_upload_lettings_results_controller.rb b/app/controllers/bulk_upload_lettings_results_controller.rb index d4486f29f..1c5342cd8 100644 --- a/app/controllers/bulk_upload_lettings_results_controller.rb +++ b/app/controllers/bulk_upload_lettings_results_controller.rb @@ -10,13 +10,21 @@ class BulkUploadLettingsResultsController < ApplicationController def resume @bulk_upload = current_user.bulk_uploads.lettings.find(params[:id]) - set_bulk_upload_logs_filters + if @bulk_upload.lettings_logs.in_progress.count.positive? + set_bulk_upload_logs_filters - redirect_to(lettings_logs_path(bulk_upload_id: [@bulk_upload.id])) + redirect_to(lettings_logs_path(bulk_upload_id: [@bulk_upload.id])) + else + reset_logs_filters + end end private + def reset_logs_filters + session["logs_filters"] = {}.to_json + end + def set_bulk_upload_logs_filters hash = { years: [""], diff --git a/app/views/bulk_upload_lettings_results/resume.html.erb b/app/views/bulk_upload_lettings_results/resume.html.erb new file mode 100644 index 000000000..a5af1bd9d --- /dev/null +++ b/app/views/bulk_upload_lettings_results/resume.html.erb @@ -0,0 +1,11 @@ +
+ You’ve completed all the logs that had errors from your bulk upload. +
+ +<%= govuk_button_link_to "Back to all logs", lettings_logs_path, button: true %> diff --git a/spec/controllers/bulk_upload_lettings_results_controller_spec.rb b/spec/controllers/bulk_upload_lettings_results_controller_spec.rb index db7ae161b..fa6be6412 100644 --- a/spec/controllers/bulk_upload_lettings_results_controller_spec.rb +++ b/spec/controllers/bulk_upload_lettings_results_controller_spec.rb @@ -9,38 +9,61 @@ RSpec.describe BulkUploadLettingsResultsController do let(:user) { create(:user) } let(:bulk_upload) { create(:bulk_upload, :lettings, user:) } - it "clears the year filter" do - hash = { - years: ["", "2022"], - } + context "when there are no logs left to resolve" do + render_views - session["logs_filters"] = hash.to_json + it "displays copy to user" do - get :resume, params: { id: bulk_upload.id } + get :resume, params: { id: bulk_upload.id } - expect(JSON.parse(session["logs_filters"])["years"]).to eql([""]) + expect(response.body).to include("There are no more logs that need updating") + end + + it "resets logs filters" do + get :resume, params: { id: bulk_upload.id } + + expect(JSON.parse(session["logs_filters"])).to eql({}) + end end - it "sets the status filter to in progress" do - session["logs_filters"] ||= {}.to_json + context "when there are logs left to resolve" do + before do + create(:lettings_log, :in_progress, bulk_upload:) + end - get :resume, params: { id: bulk_upload.id } + it "clears the year filter" do + hash = { + years: ["", "2022"], + } - expect(JSON.parse(session["logs_filters"])["status"]).to eql(["", "in_progress"]) - end + session["logs_filters"] = hash.to_json - it "sets the user filter to all" do - session["logs_filters"] ||= {}.to_json + get :resume, params: { id: bulk_upload.id } - get :resume, params: { id: bulk_upload.id } + expect(JSON.parse(session["logs_filters"])["years"]).to eql([""]) + end - expect(JSON.parse(session["logs_filters"])["user"]).to eql("all") - end + it "sets the status filter to in progress" do + session["logs_filters"] ||= {}.to_json + + get :resume, params: { id: bulk_upload.id } + + expect(JSON.parse(session["logs_filters"])["status"]).to eql(["", "in_progress"]) + end + + it "sets the user filter to all" do + session["logs_filters"] ||= {}.to_json + + get :resume, params: { id: bulk_upload.id } + + expect(JSON.parse(session["logs_filters"])["user"]).to eql("all") + end - it "redirects to logs with bulk upload filter applied" do - get :resume, params: { id: bulk_upload.id } + it "redirects to logs with bulk upload filter applied" do + get :resume, params: { id: bulk_upload.id } - expect(response).to redirect_to("/lettings-logs?bulk_upload_id%5B%5D=#{bulk_upload.id}") + expect(response).to redirect_to("/lettings-logs?bulk_upload_id%5B%5D=#{bulk_upload.id}") + end end end end