diff --git a/app/javascript/controllers/bank_search_controller.js b/app/javascript/controllers/bank_search_controller.js index a2c045cd9..155a7a8bb 100644 --- a/app/javascript/controllers/bank_search_controller.js +++ b/app/javascript/controllers/bank_search_controller.js @@ -7,9 +7,9 @@ export default class extends Controller { const query = this.inputTarget.value.toLocaleLowerCase().trim(); let visibleCount = 0; - this.itemTargets.forEach(item => { - const name = item.dataset.bankName?.toLocaleLowerCase() ?? ""; - const match = name.includes(query); + this.itemTargets.forEach((item) => { + const haystack = (item.dataset.bankSearch ?? "").toLocaleLowerCase(); + const match = haystack.includes(query); item.style.display = match ? "" : "none"; if (match) visibleCount++; }); diff --git a/app/views/enable_banking_items/select_bank.html.erb b/app/views/enable_banking_items/select_bank.html.erb index 124c8e3ec..095ae6738 100644 --- a/app/views/enable_banking_items/select_bank.html.erb +++ b/app/views/enable_banking_items/select_bank.html.erb @@ -28,7 +28,7 @@
<% @aspsps.each do |aspsp| %> -
+
"> <%= button_to authorize_enable_banking_item_path(@enable_banking_item), method: :post, params: { aspsp_name: aspsp[:name], new_connection: @new_connection }, diff --git a/test/controllers/enable_banking_items_controller_test.rb b/test/controllers/enable_banking_items_controller_test.rb new file mode 100644 index 000000000..06005bc9a --- /dev/null +++ b/test/controllers/enable_banking_items_controller_test.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require "test_helper" +require "openssl" + +class EnableBankingItemsControllerTest < ActionDispatch::IntegrationTest + setup do + sign_in users(:family_admin) + @family = families(:dylan_family) + @item = @family.enable_banking_items.create!( + name: "Test Connection", + country_code: "DE", + application_id: "test_app_id", + client_certificate: OpenSSL::PKey::RSA.new(2048).to_pem + ) + end + + test "select_bank exposes ASPSP BIC in the searchable data attribute" do + Provider::EnableBanking.any_instance.stubs(:get_aspsps).returns( + aspsps: [ + { + name: "ING-DiBa AG", + country: "DE", + bic: "INGDDEFF", + beta: false, + psu_types: [ "personal" ], + auth_methods: [ { approach: "REDIRECT" } ] + } + ] + ) + + get select_bank_enable_banking_item_url(@item) + + assert_response :success + haystack = @response.body[/data-bank-search="([^"]*)"/, 1] + assert haystack, "Expected list items to render a data-bank-search attribute the client filter reads from" + assert_includes haystack, "ingddeff", + "Expected the searchable data attribute to include the BIC so users can find banks by BIC code" + assert_includes haystack, "ing-diba ag", + "Expected the searchable data attribute to still include the bank name (existing name-search behavior)" + end +end