From c697ddec7f5db5e94a2142bcdc7881c037b04299 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Mon, 9 Feb 2026 14:05:40 +0000 Subject: [PATCH] CLDC-NONE: Fix more flaky tests (#3160) * CLDC-NONE: Allow any line order in csv file test * CLDC-NONE: Get scheme by name rather than array position * CLDC-NONE: Make org ID test more generic the test is around a value being cleared so seems unneeded to require a specific ID also * fixup! CLDC-NONE: Get scheme by name rather than array position do the same for location also improve variable names --- spec/features/user_spec.rb | 2 +- spec/lib/tasks/count_duplicates_spec.rb | 7 ++++++- spec/services/merge/merge_organisations_service_spec.rb | 9 ++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/spec/features/user_spec.rb b/spec/features/user_spec.rb index cea3f14e9..0be4f4daa 100644 --- a/spec/features/user_spec.rb +++ b/spec/features/user_spec.rb @@ -815,7 +815,7 @@ RSpec.describe "User Features" do find("#owning-organisation-field").click.native.send_keys("F", "i", "l", "t") select(parent_organisation.name, from: "owning-organisation-field-select", visible: false) click_button("Apply filters") - expect(page).to have_current_path("/lettings-logs?%5Byears%5D%5B%5D=&%5Bstatus%5D%5B%5D=&%5Bneedstypes%5D%5B%5D=&assigned_to=all&user_text_search=&owning_organisation_select=specific_org&owning_organisation_text_search=&owning_organisation=#{parent_organisation.id}&managing_organisation_select=all&managing_organisation_text_search=") + expect(page).to have_current_path(/lettings-logs\?%5Byears%5D%5B%5D=&%5Bstatus%5D%5B%5D=&%5Bneedstypes%5D%5B%5D=&assigned_to=all&user_text_search=&owning_organisation_select=specific_org&owning_organisation_text_search=&owning_organisation=\d+&managing_organisation_select=all&managing_organisation_text_search=/) choose("owning-organisation-select-all-field", allow_label_click: true) click_button("Apply filters") expect(page).to have_current_path("/lettings-logs?%5Byears%5D%5B%5D=&%5Bstatus%5D%5B%5D=&%5Bneedstypes%5D%5B%5D=&assigned_to=all&user_text_search=&owning_organisation_select=all&owning_organisation_text_search=&managing_organisation_select=all&managing_organisation_text_search=") diff --git a/spec/lib/tasks/count_duplicates_spec.rb b/spec/lib/tasks/count_duplicates_spec.rb index ba9aa7e59..9a733d029 100644 --- a/spec/lib/tasks/count_duplicates_spec.rb +++ b/spec/lib/tasks/count_duplicates_spec.rb @@ -44,7 +44,12 @@ RSpec.describe "count_duplicates" do end it "creates a csv with correct duplicate numbers" do - expect(storage_service).to receive(:write_file).with(/scheme-duplicates-.*\.csv/, "\uFEFFOrganisation id,Number of duplicate sets,Total duplicate schemes\n#{organisation.id},2,5\n#{organisation2.id},1,5\n") + expect(storage_service).to receive(:write_file).with(/scheme-duplicates-.*\.csv/, satisfy do |s| + s.start_with?("\uFEFFOrganisation id,Number of duplicate sets,Total duplicate schemes") && + s.include?("#{organisation.id},2,5") && + s.include?("#{organisation2.id},1,5") && + s.count("\n") == 3 + end) expect(Rails.logger).to receive(:info).with("Download URL: #{test_url}") task.invoke end diff --git a/spec/services/merge/merge_organisations_service_spec.rb b/spec/services/merge/merge_organisations_service_spec.rb index 3f0ee4b1c..b5e04bbe7 100644 --- a/spec/services/merge/merge_organisations_service_spec.rb +++ b/spec/services/merge/merge_organisations_service_spec.rb @@ -1582,9 +1582,12 @@ RSpec.describe Merge::MergeOrganisationsService do owned_lettings_log_no_location.reload expect(new_absorbing_organisation.owned_lettings_logs.count).to eq(2) expect(new_absorbing_organisation.managed_lettings_logs.count).to eq(1) - expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).scheme).to eq(new_absorbing_organisation.owned_schemes.first) - expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).location).to eq(new_absorbing_organisation.owned_schemes.first.locations.first) - expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).scheme).to eq(new_absorbing_organisation.owned_schemes.first) + new_absorbing_organisation_lettings_log = new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id) + new_absorbing_organisation_scheme = new_absorbing_organisation.owned_schemes.find_by(service_name: new_absorbing_organisation_lettings_log.scheme.service_name) + new_absorbing_organisation_location = new_absorbing_organisation_scheme.locations.find_by(name: new_absorbing_organisation_lettings_log.location.name) + expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).scheme).to eq(new_absorbing_organisation_scheme) + expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log.id).location).to eq(new_absorbing_organisation_location) + expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).scheme).to eq(new_absorbing_organisation_scheme) expect(new_absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).location).to eq(nil) end