From 60cbd28f4c0aa83b5aaf08504b86b5052e845825 Mon Sep 17 00:00:00 2001 From: Max Kadel Date: Wed, 29 Jan 2025 16:42:12 -0500 Subject: [PATCH] Test for keyboard nav in multiselect combobox Co-authored-by: Jane Sandberg Co-authored-by: Carolyn Cole Co-authored-by: Christina Chortaria --- app/javascript/orangelight/multiselect_combobox.es6 | 4 ++-- spec/system/numismatics_form_spec.rb | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/javascript/orangelight/multiselect_combobox.es6 b/app/javascript/orangelight/multiselect_combobox.es6 index 4fbd9f410..6c8565a51 100644 --- a/app/javascript/orangelight/multiselect_combobox.es6 +++ b/app/javascript/orangelight/multiselect_combobox.es6 @@ -60,12 +60,10 @@ export default class MultiselectCombobox { if (isUpOrDownEvent) { event.stopPropagation(); instance.show(); - instance._selectMenuItem(event); return; } - console.log(`I'm in the event listener for event: ${event}`); }); this.inputElement.addEventListener('keyup', (event) => { this.updateOptionVisibility(); @@ -79,6 +77,8 @@ export default class MultiselectCombobox { (event) => { if (event.code == 'Enter') { this.toggleItem(item); + } else if (event.code == 'ArrowUp' || event.code == 'ArrowDown') { + return; } else { // Send all other events to the input, so that // anything the user types ends up there diff --git a/spec/system/numismatics_form_spec.rb b/spec/system/numismatics_form_spec.rb index 21de467f1..cbd7e3356 100644 --- a/spec/system/numismatics_form_spec.rb +++ b/spec/system/numismatics_form_spec.rb @@ -34,5 +34,10 @@ end page.send_keys(:down) expect(page).to have_content('shekel') + active_element = page.evaluate_script("document.activeElement") + expect(active_element.text).to eq("1/2 Penny (1)") + page.send_keys(:down) + active_element = page.evaluate_script("document.activeElement") + expect(active_element.text).to eq("follis (1)") end end