From 79412c1adaf19bc5e1b08e14662884aaafd717bd Mon Sep 17 00:00:00 2001 From: Kat Date: Tue, 1 Aug 2023 16:18:33 +0100 Subject: [PATCH] Update controller specs --- .../duplicate_logs_controller_spec.rb | 76 ++++++------------- 1 file changed, 24 insertions(+), 52 deletions(-) diff --git a/spec/requests/duplicate_logs_controller_spec.rb b/spec/requests/duplicate_logs_controller_spec.rb index 0bcfcfed1..52dfe0ae7 100644 --- a/spec/requests/duplicate_logs_controller_spec.rb +++ b/spec/requests/duplicate_logs_controller_spec.rb @@ -332,57 +332,35 @@ RSpec.describe DuplicateLogsController, type: :request do context "when the user is a data coordinator" do let(:user) { create(:user, :data_coordinator) } - it "renders not found" do + before do + allow(user.organisation).to receive(:duplicate_lettings_logs_sets).and_return([[1, 2], [3, 4, 5]]) + allow(user.organisation).to receive(:duplicate_sales_logs_sets).and_return([[11, 12]]) + end + + it "gets organisation duplicates" do + expect(user.organisation).to receive(:duplicate_lettings_logs_sets) + expect(user.organisation).to receive(:duplicate_sales_logs_sets) get duplicate_logs_path(organisation_id: user.organisation.id) - expect(response).to have_http_status(:not_found) end end context "when the user is a provider" do let(:user) { create(:user) } - let(:duplicates) do - { - lettings: { - "0" => [1, 2], - "1" => [3, 4, 5], - }, - sales: { - "0" => [11, 12], - }, - } - end - # rubocop:disable RSpec/AnyInstance - context "when duplicates are not provided in the params" do - before do - allow_any_instance_of(DuplicateLogsHelper).to receive(:duplicates_for_user).and_return duplicates - end - - it "calls the helper method to retrieve duplicates for the current user" do - expect_any_instance_of(DuplicateLogsHelper).to receive(:duplicates_for_user).with(user) - get duplicate_logs_path - end + before do + allow(user).to receive(:duplicate_lettings_logs_sets).and_return([[1, 2], [3, 4, 5]]) + allow(user).to receive(:duplicate_sales_logs_sets).and_return([[11, 12]]) end - context "when duplicates are provided in the params" do - it "does not call the helper method" do - expect_any_instance_of(DuplicateLogsHelper).not_to receive :duplicates_for_user - get duplicate_logs_path(duplicates:) - end - - context "and either lettings or sales is not present" do - let(:duplicates) { { lettings: { "0" => [1, 2] } } } - - it "does not throw an error" do - expect { get duplicate_logs_path(duplicates:) }.not_to raise_error - end - end + it "calls the helper method to retrieve duplicates for the current user" do + expect(user).to receive(:duplicate_lettings_logs_sets) + expect(user).to receive(:duplicate_sales_logs_sets) + get duplicate_logs_path end - # rubocop:enable RSpec/AnyInstance describe "viewing the page" do before do - get duplicate_logs_path(duplicates:) + get duplicate_logs_path end it "has the correct headers" do @@ -391,26 +369,20 @@ RSpec.describe DuplicateLogsController, type: :request do end it "has the correct number of rows for each log type" do - expect(page).to have_selector "tbody tr td", text: "Lettings", count: duplicates[:lettings].count - expect(page).to have_selector "tbody tr td", text: "Sales", count: duplicates[:sales].count + expect(page).to have_selector("tbody tr td", text: "Lettings", count: 2) + expect(page).to have_selector("tbody tr td", text: "Sales", count: 1) end it "shows the log ids for each set of duplicates" do - id_strings = duplicates.values.flat_map(&:values).map do |id_set| - id_set.map { |id| "Log #{id}" }.join(", ") - end - id_strings.each do |id_string| - expect(page).to have_selector "td", text: id_string - end + expect(page).to have_content("Log 1, Log 2") + expect(page).to have_content("Log 3, Log 4, Log 5") + expect(page).to have_content("Log 11, Log 12") end it "shows links for each set of duplciates" do - duplicates[:lettings].each_value do |id_set| - expect(page).to have_link "Review logs", href: lettings_log_duplicate_logs_path(id_set.first) - end - duplicates[:sales].each_value do |id_set| - expect(page).to have_link "Review logs", href: sales_log_duplicate_logs_path(id_set.first) - end + expect(page).to have_link("Review logs", href: lettings_log_duplicate_logs_path(1)) + expect(page).to have_link("Review logs", href: lettings_log_duplicate_logs_path(3)) + expect(page).to have_link("Review logs", href: sales_log_duplicate_logs_path(11)) end end end