From a09ad3793c43877860d7c5f1976b1288134dde27 Mon Sep 17 00:00:00 2001 From: JG Date: Fri, 27 May 2022 17:01:34 +0100 Subject: [PATCH] testing I can download only logs matching both search and filter --- app/controllers/case_logs_controller.rb | 13 +++++------ spec/requests/case_logs_controller_spec.rb | 26 +++++++++++++++++++++- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb index bdf9e9e9b..9677e582f 100644 --- a/app/controllers/case_logs_controller.rb +++ b/app/controllers/case_logs_controller.rb @@ -13,20 +13,17 @@ class CaseLogsController < ApplicationController all_logs = current_user.case_logs - @pagy, @case_logs = pagy( - filtered_case_logs( - filtered_collection( - all_logs, search_term - ), - ), - ) + unpaginated_logs = filtered_case_logs(filtered_collection(all_logs, search_term)) + + @pagy, @case_logs = pagy(unpaginated_logs) + @searched = search_term.presence @total_count = all_logs.size respond_to do |format| format.html format.csv do - send_data filtered_case_logs(current_user.case_logs).to_csv, filename: "logs-#{Time.zone.now}.csv" + send_data unpaginated_logs.to_csv, filename: "logs-#{Time.zone.now}.csv" end end end diff --git a/spec/requests/case_logs_controller_spec.rb b/spec/requests/case_logs_controller_spec.rb index 3fcd7d63e..232329859 100644 --- a/spec/requests/case_logs_controller_spec.rb +++ b/spec/requests/case_logs_controller_spec.rb @@ -757,7 +757,31 @@ RSpec.describe CaseLogsController, type: :request do it "dowloads searched logs" do get "/logs?search=#{case_log.id}", headers:, params: {} csv = CSV.parse(response.body) - expect(csv.count).to eq(1) + expect(csv.count).to eq(2) + end + + context "both filter and search applied" do + let!(:case_log) do + FactoryBot.create( + :case_log, + :completed, + postcode_full: "XX1 1TG", + owning_organisation: organisation + ) + end + + before do + FactoryBot.create(:case_log, + :in_progress, + postcode_full: case_log.postcode_full, + owning_organisation: organisation + ) + end + it "dowloads logs matching both csv and filter logs" do + get "/logs?status[]=completed&search=#{case_log.postcode_full}", headers:, params: {} + csv = CSV.parse(response.body) + expect(csv.count).to eq(2) + end end end