require "rails_helper" RSpec.describe BulkUploadLettingsResultsController do before do sign_in user end describe "#show" do let(:user) { create(:user) } let(:bulk_upload) { create(:bulk_upload, :lettings, user:) } it "passes thru pundit" do allow(controller).to receive(:authorize) get :show, params: { id: bulk_upload.id } expect(controller).to have_received(:authorize) end end describe "GET #resume /lettings-logs/bulk-upload-results/:ID/resume" do let(:user) { create(:user) } let(:bulk_upload) { create(:bulk_upload, :lettings, user:) } context "when there are no logs left to resolve" do render_views it "displays copy to user" do get :resume, params: { id: bulk_upload.id } 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 context "when there are logs left to resolve" do before do create(:lettings_log, :in_progress, bulk_upload:) end it "clears the year filter" do hash = { years: ["", "2022"], } session["logs_filters"] = hash.to_json get :resume, params: { id: bulk_upload.id } expect(JSON.parse(session["logs_filters"])["years"]).to eql([""]) 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 } expect(response).to redirect_to("/lettings-logs?bulk_upload_id%5B%5D=#{bulk_upload.id}") end end end end