Browse Source

add interstitial to resume if logs resolved

pull/1223/head
Phil Lee 3 years ago
parent
commit
664b54f33c
  1. 12
      app/controllers/bulk_upload_lettings_results_controller.rb
  2. 11
      app/views/bulk_upload_lettings_results/resume.html.erb
  3. 63
      spec/controllers/bulk_upload_lettings_results_controller_spec.rb

12
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: [""],

11
app/views/bulk_upload_lettings_results/resume.html.erb

@ -0,0 +1,11 @@
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<h1 class="govuk-heading-xl">There are no more logs that need updating</h1>
</div>
</div>
<p class="govuk-body-l">
You’ve completed all the logs that had errors from your bulk upload.
</p>
<%= govuk_button_link_to "Back to all logs", lettings_logs_path, button: true %>

63
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

Loading…
Cancel
Save